Javascript 在useEffect将onChange事件设置为元素后,如何获取更新状态?

Javascript 在useEffect将onChange事件设置为元素后,如何获取更新状态?,javascript,reactjs,Javascript,Reactjs,我有一个输入字段,需要在安装组件时绑定onChange事件。onChange事件需要更新状态。但是,状态永远不会更新,因为onChange事件始终具有初始状态。什么是最好的方式使这项工作 这是我的密码: const someComponent: FC<someComponent> = props => { const [count, setCount] = useState(0); const someFunction = () => {

我有一个输入字段,需要在安装组件时绑定onChange事件。onChange事件需要更新状态。但是,状态永远不会更新,因为onChange事件始终具有初始状态。什么是最好的方式使这项工作

这是我的密码:

const someComponent: FC<someComponent> = props => {
    const [count, setCount] = useState(0);
    const someFunction = () => {
        console.log(count) // 0
        setCount(count+ 1);
        console.log(count) // Also 0
    }

    useEffect(() => {
        inputField.onChange = () => {
          someFunction();
        }
    }, [])
}
const someComponent:FC=props=>{
const[count,setCount]=useState(0);
常量someFunction=()=>{
console.log(计数)//0
设置计数(计数+1);
console.log(count)//也是0
}
useffect(()=>{
inputField.onChange=()=>{
someFunction();
}
}, [])
}

您可以查看useEffect以获取更新状态。状态设置本质上是异步的-

const someComponent: FC<someComponent> = props => {
    const [count, setCount] = useState(0);
    const someFunction = () => {
        console.log(count) // 0
        setCount(count+ 1);
        console.log(count) // Also 0
    }

  useEffect(() => {
        inputField.onChange = () => {
          someFunction();
        }
    }, [])

    useEffect(() => {
        console.log(count) //updated value//
    }, [count]) // adding count to dependency array will cause this  useEffect to run on every count change //
}
const someComponent:FC=props=>{
const[count,setCount]=useState(0);
常量someFunction=()=>{
console.log(计数)//0
设置计数(计数+1);
console.log(count)//也是0
}
useffect(()=>{
inputField.onChange=()=>{
someFunction();
}
}, [])
useffect(()=>{
console.log(count)//更新的值//
},[count])//将count添加到依赖项数组将导致此useffect在每次计数更改时运行//
}

这是否回答了您的问题?此外,您通常将事件处理程序附加到生成事件的元素/组件。为什么要在装载时绑定事件更改?将更改处理程序添加到InputField就足够了吗?@Vishnu我有一个JSON文件,其中包含页面上所需的输入元素的结构。这是为了允许字段的灵活性。然后我读取JSON文件,在React组件中使用它,然后需要附加一个onChange函数来处理对输入的更改。@EricPPereira尽管如此,处理程序并不是这样附加到组件的。您有两个问题,第一个是将
onChange
处理程序连接到输入组件,第二个是正确访问更新状态/不包含过时状态。请分享一个例子,并尝试将其局限于一个特定的问题。