我认为在react框架中,视图随Component的state
而变化,
所以我认为当mapStateToProps
运行时,组件会得到一个新的store's
state
,
表示组件更改的props
。
根据react
框架,在这种情况下,除非调用this.setState
,否则视图不会重新渲染
答案 0 :(得分:0)
我举一个例子。
1):首先加载组件
2)您在组件上进行了更改,从而更改了该组件的Redux状态
现在,如果您想查看与此组件关联的新道具,则可以在“ render()”方法中看到它们。这是因为如果更改了道具,则react组件将自动重新渲染(如Peter Ambruzs所述)。问题是,如果您想在渲染功能之外使用这些新道具,则必须更新道具(或您的本地状态)。
在这种情况下,您应该使用getDerivedStateFromProps(新组件WillReceiveProps),例如:
constructor(props) {
super(props);
state = {
stateExample: this.props,
}
}
static getDerivedStateFromProps(nextProps, prevState) {
if(nextProps.stateExample !== prevState.stateExample) {
return { stateExample: nextProps.stateExample }
} else return null;
}
这将使用您刚刚在redux商店中更改的新道具来更新您的本地状态。