react-bootstrap-table rowevent不会立即更新状态

问题描述

我研究了使用挂钩的立即状态更新,并发现了这个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)
   }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...