问题描述
我研究了使用挂钩的立即状态更新,并发现了这个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使其检测到任何更改来获取它的当前设置状态? decipher()使用messageid,因此它必须是最新的。
解决方法
如果我正确理解了您的逻辑,则可以在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)
}
}