商店更新未反映

时间:2017-06-10 17:58:37

标签: reactjs redux react-redux

我正在关注React&终极版。我有行动,减速器分开工作。我或多或少都在妥善管理国家。

我正在尝试创建一个没有文本框和按钮(禁用)的UI。在文本框中,我添加了onchange事件,在其上调用函数

onChangeTextbox(){

}

在这个功能中,我做了以下事情。 1.我更新了redux商店的状态。

onChangeTextbox(){
  updateStateOfTextBox();
}

2.执行此操作后,我会查找ui中的所有文本框是否包含其中的内容。如果是这样,我将启用我的按钮进行进一步的操作。

onChangeTextbox(){
      updateStateOfTextBox();
      updateStateOfButton();
}

除了一件事,一切都很好。 有一件事是,当我给最后一个空文本框一个字符时,该按钮不会立即启用,当我给出更多字符时,该按钮被启用。类似地,反之亦然,用于禁用按钮。

我发现的问题是,当控件完成其功能updateStateOfTextBox();的工作并进入updateStateOfButton();功能时,状态保持不变。再次当render()发生时,状态的变化就会反映出来。

我想解决这个问题而且我没有任何出路。任何解决方案和建议将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决这种情况的方法。

componentsWillRecieveProps(newProps){

}

生命周期的这种方法改变了游戏。

componentsWillRecieveProps(newProps){
    newProps.state // this will give you new updated state which your action updated.
    this.props.state // this will give you local or your state
// Here you can update your local state with global state
// And call the other function here as
updateStateOfButton();
}

因此,解决方案可以解释为

onChangeTextbox(){
  updateStateOfTextBox();
}

componentsWillRecieveProps(newProps){
.
.
updateStateOfButton();
}