useEffect,useState 基本用法

import {useEffect,useState} from "react"

export const  SearchPanel = () =>{
    const [param,setParam] = useState({
        name:'',
        personId:''
    })
    const [users,setUsers] = useState([])
    const [list,setList]   = useState([])

        /*

        param 每次改变 都会请求
        async 会将其后的函数(函数表达式或 Lambda)的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。
        如果它等到的是一个 Promise 对象,await 就忙起来了,它会阻塞后面的代码,等着 Promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果
        看到上面的阻塞一词,心慌了吧……放心,这就是 await 必须用在 async 函数中的原因。async 函数调用不会造成阻塞,它内部所有的阻塞都被封装在一个 Promise 对象中异步执行。
        async/await 的优势在于处理 then 链

        */}
     useEffect(()=>{
        fetch('').then(async response => {
            if(response.ok){
                setList(await response.json())
            }
        },[param])
     })
    return <from>

              {/*
                 下面 的对应解构赋值写法
                 setParam(Object.assign({},param,{name:evt.target.value}))

              */}
                <div>
                    <input type="text" value ={param.name} onChange{evt => setParam({
                    ...param,
                    name:evt.target.value
                    }) />
                    <select
                    value = {param.personId}
                    onChange{evt => setParam({
                                        ...param,
                                        personId:evt.target.value
                                        })
                    >
                        <option value="">负责人</option>
                        {
                            users.map(user => <option value={user.id}>{user.name}</option> )
                        }
                    </select>
                </div>


           </from>
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值