首页 > 解决方案 > mapStateToProps 必须与 getDerivedStateFromProps 一起使用吗?

问题描述

我尝试在我的 react native 应用程序中使用 Redux。我绝对可以看到减速器更新了该值,但我的问题是为什么它没有自动更新我的类的属性?

我需要使用 getDerivedStateFromProps 来填充我的类属性。我希望以下内容:

const mapStateToProps = (state) => { return { email: state.user }

会自动使用 redux 商店中的值更新 this.state.email ,但它不会。我需要执行以下操作才能工作:

静态 getDerivedStateFromProps(props, state) {return { user: props.user}}

标签: react-nativeredux

解决方案


您可以在组件中直接使用 reducer。当 reducer 中的值发生变化时,它也会自动更新。例如,如果您想user在组件中使用变量,则可以按如下方式使用它:

<Text>{this.props.user}</Text>

现在,当userreducer 中的变量值发生变化时,它会在<Text>组件中自动更新。您不需要使用此行:

static getDerivedStateFromProps(props, state) {return { user: props.user}}

推荐阅读