我正在关注React&终极版。我有行动,减速器分开工作。我或多或少都在妥善管理国家。
我正在尝试创建一个没有文本框和按钮(禁用)的UI。在文本框中,我添加了onchange事件,在其上调用函数
onChangeTextbox(){
}
在这个功能中,我做了以下事情。 1.我更新了redux商店的状态。
onChangeTextbox(){
updateStateOfTextBox();
}
2.执行此操作后,我会查找ui中的所有文本框是否包含其中的内容。如果是这样,我将启用我的按钮进行进一步的操作。
onChangeTextbox(){
updateStateOfTextBox();
updateStateOfButton();
}
除了一件事,一切都很好。 有一件事是,当我给最后一个空文本框一个字符时,该按钮不会立即启用,当我给出更多字符时,该按钮被启用。类似地,反之亦然,用于禁用按钮。
我发现的问题是,当控件完成其功能updateStateOfTextBox();
的工作并进入updateStateOfButton();
功能时,状态保持不变。再次当render()发生时,状态的变化就会反映出来。
我想解决这个问题而且我没有任何出路。任何解决方案和建议将不胜感激。 感谢。
答案 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();
}