我已经研究了使用钩子的即时状态更新,并找到了这个solution。然而,我发现在我的情况下实现它是一个挑战。
const rowEvents = {
onClick: (e, row, rowIndex) => {
setMessageid(row.pm_id);
console.log(row.pm_id);
console.log(messageid);
if (row.custompassword === true) {
handleShow1();
} else {
decipher();
handleShow2();
}
},
};如何通过将messageid添加到useEffect中以使其检测到任何更改来获取messageid的当前设置状态?decipher()使用messageid,因此它需要是当前的。
发布于 2020-10-28 20:57:56
如果我正确理解您的逻辑,您可以在useEffect中使用decipher()函数,只需像往常一样设置状态即可。只需记住将消息id设置为依赖项。
const [messageId, setMessageId] = useState("");
useEffect(() =>{
decipher()
//useEffect will be called after the messsageId state changes
}, [messageId])
const rowEvents = {
onClick: (e, row, rowindex) =>{
// do other stuff
setMessageId(row.pm_id)
}
}https://stackoverflow.com/questions/64571711
复制相似问题