[英]useState() hook removes fields from the object when setting new value
[英]How to manage the asynchrounous nature of useState hook when setting a value and using it directly after
我是 React 的新手,无法真正理解如何正确使用 useState 钩子。
export default function App() {
const [name, setName] = useState("noname");
const updateAndLogName = () => {
setName("Alex");
console.log(name); // first time => "noname"
};
return (
<div className="App">
<button onClick={() => updateAndLogName()}>
Click me to change and log name in console
</button>
</div>
);
}
我调用了一个更新值的方法,然后直接使用更新后的值。 但是由于 setName 函数是异步的,所以我在 console.log 中获得了原始值,并且必须等到 React 更新了该值才能获得正确的结果。
在这个简化的示例中,我可以将该值作为函数参数并在 setName 和 console.log 中使用它,也许这就是它应该完成的方式,但是还有其他首选方法来处理这种情况吗?
编辑:
这是另一个例子:
在这个简化的示例中,我可以将该值作为函数参数并在 setName 和 console.log 中使用它,也许应该这样做
如果您不想等待另一个渲染,这是一种方法。 如果等待渲染没问题,另一种方法可能是:
useEffect(()=>{
console.log("Will get here anytime name changes", name);
}, [name])
也有 关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.