设置默认回调以响应setState()函数

时间:2018-11-26 09:37:18

标签: javascript reactjs function functional-programming

我想看看是否可以为组件的每个状态更新调用一个函数。由于react setState()接受回调作为seconds参数,是否有办法在每次状态更改时调用函数?

我尝试了一些,但进展不顺利。您可以检查here

如果我绑定的方式有问题,请纠正我。

3 个答案:

答案 0 :(得分:1)

如果我理解正确,则可以使用$ systemctl daemon-reload $ systemctl restart docker 来检查状态是否已更新并在其中调用该函数。 请注意,componentDidUpdate已过时。

答案 1 :(得分:0)

您作为第二个参数传递的回调旨在访问当前状态并返回新状态。您可以创建包装器功能,以向状态更改添加功能,例如:

const onStateChange = (...) => {
    //DO SOMETHING HERE
    this.setState(...);
};

然后,每当您想要更改状态时,请以增加的行为调用此函数。希望这会有所帮助。

答案 2 :(得分:0)

您不必在每次状态更改时都覆盖要执行的setState回调,而可以在react中使用componentDidUpdate生命周期方法

componentDidUpdate(prevProps, prevState) {
   //compare this state and prevState and take action here
}

或者您可以编写执行函数和setState的函数

_setState = (updatedObj) =>{
     this.setState(updatedObj, this.callback)
}