我一生都无法弄清楚发生了什么,但是出于某种原因,当单击“单击我”时,数字会按您的预期增加。当子组件触发单击时,它会重置状态并始终打印 0。
function Child(props: {
onClick?: (id: string) => void,
}) {
const ref = useCallback((ref) => {
ref.innerHTML = 'This Doesnt';
ref.addEventListener('click',() => {
props.onClick!('')
})
}, [])
return (<div ref={ref}></div>)
}
function Parent() {
const [number, setNumber] = useState(0);
return <div>
<div onClick={() => {
setNumber(number + 1);
console.log(number);
}}>
This Works
</div>
<Child
onClick={(id) => {
setNumber(number + 1);
console.log(number);;
}}
/>
</div>
}
这是问题的演示:https : //jscomplete.com/playground/s333177
慕沐林林
相关分类