Javascript 为什么运行wait后不更新event.target.value?

Javascript 为什么运行wait后不更新event.target.value?,javascript,reactjs,Javascript,Reactjs,我正在编写一个onChange事件处理程序,它使用一些异步代码运行。 由于函数是异步的,事件对象一直保持在顶部 在运行waitwait之前,需要“event.target.value”,但在运行wait之后,event.target.value不会更新 我知道我可以在运行wait之前缓存值,比如const value=event.target.value,但我想知道为什么event.target.value在wait前后都会发生变化 函数MyApp(){ const[title,setTitle

我正在编写一个onChange事件处理程序,它使用一些异步代码运行。 由于函数是异步的,事件对象一直保持在顶部

在运行wait
wait
之前,需要“event.target.value”,但在运行wait之后,event.target.value不会更新

我知道我可以在运行wait之前缓存值,比如
const value=event.target.value
,但我想知道为什么event.target.value在wait前后都会发生变化

函数MyApp(){
const[title,setTitle]=useState(“”)
常量handleChange=async(e)=>{
//如果我输入“a”
console.log(e.target.value)/“a”
e、 坚持
console.log(e.target.value)/“a”
//这里有一些异步代码
等待承诺。解决(空)
console.log(e.target.value)//值不是“a”,而是“”,未更新
setTitle(如目标值)
}
返回
}

事件处理程序
将被传递给
事件的实例

该事件是合并的。这意味着将重用SyntheticEvent对象,并且在调用事件回调后,所有属性都将为空

如果要以异步方式访问事件属性,应调用事件的event.persist(),这将从池中删除合成事件,并允许用户代码保留对事件的引用。
--反应文档

使用
e.persist()
可以在异步函数中获取
事件.target.value

const handleChange=async(e)=>{
e、 坚持
//异步函数
等待新的承诺((决心)=>{
console.log('async',e.target.value)//您可以在这里获取值
解决()
})
console.log(e.target.value)//但不在这里
}
另外,检查这个答案