监视变量的变化和更新状态
Monitoring a variable for change and updating state
我目前正在尝试确定监视 React/Redux 中的变量并在它发生变化时使用它来更新状态的选项。
这与我在此处提出的另一个问题有关( 如果您需要上下文),但具体到如何监视和调用更改事件。
我使用了 3 个状态(映射到道具),然后像这样将它们加在一起...
let total = (this.props.sub1 + this.props.sub2 + this.props.sub3);
然后我想在每次 total
更改时为 total
更新我的 redux 状态...
目前,我正在观察每个子状态的变化,然后像这样更新总数...
if(this.props.sub1 != prevProps.sub1 ||
this.props.sub2 != prevProps.sub2 ||
this.props.sub3 != prevProps.sub3){
this.props.dispatch(change('mainForm', 'total', total));}
这行得通,但似乎应该有一种方法可以仅监控总数与每个潜艇来设置此状态。像这样...
if (this.props.total != prevProps.total){this.props.dispatch(change('mainForm', 'total', total));}
但这行得通:)
想法?
当 total
在具有 sub1、sub2 和 sub3 的不同组件中呈现时,创建 this.props.total
是有意义的。
total
可以通过容器计算
此外,考虑使用重新选择 (https://github.com/reactjs/reselect)。
React(和 Redux)提倡为所有应用程序状态提供单一真实来源。在这种情况下,total
只是从 sub
构建的东西。因此,不将它包含在商店中是有意义的(如果 sub
已经在商店中),而只是在组件本身中计算它。
这可以在 connect
中的 mapStateToProps
中完成,或者使用选择器(如 reselect
)。
connect(
function(state, ownProps) {
return {
total: state.total.sub1 + state.total.sub2
}
}
)
我目前正在尝试确定监视 React/Redux 中的变量并在它发生变化时使用它来更新状态的选项。
这与我在此处提出的另一个问题有关(
我使用了 3 个状态(映射到道具),然后像这样将它们加在一起...
let total = (this.props.sub1 + this.props.sub2 + this.props.sub3);
然后我想在每次 total
更改时为 total
更新我的 redux 状态...
目前,我正在观察每个子状态的变化,然后像这样更新总数...
if(this.props.sub1 != prevProps.sub1 ||
this.props.sub2 != prevProps.sub2 ||
this.props.sub3 != prevProps.sub3){
this.props.dispatch(change('mainForm', 'total', total));}
这行得通,但似乎应该有一种方法可以仅监控总数与每个潜艇来设置此状态。像这样...
if (this.props.total != prevProps.total){this.props.dispatch(change('mainForm', 'total', total));}
但这行得通:)
想法?
当 total
在具有 sub1、sub2 和 sub3 的不同组件中呈现时,创建 this.props.total
是有意义的。
total
可以通过容器计算
此外,考虑使用重新选择 (https://github.com/reactjs/reselect)。
React(和 Redux)提倡为所有应用程序状态提供单一真实来源。在这种情况下,total
只是从 sub
构建的东西。因此,不将它包含在商店中是有意义的(如果 sub
已经在商店中),而只是在组件本身中计算它。
这可以在 connect
中的 mapStateToProps
中完成,或者使用选择器(如 reselect
)。
connect(
function(state, ownProps) {
return {
total: state.total.sub1 + state.total.sub2
}
}
)