【发布时间】:2017-11-11 06:59:56
【问题描述】:
我是 react-native 和 redux 的新手,我想知道如何在调度后更新状态...
按照我的代码:
/LoginForm.js
function mapStateToProps(state) { return { user: state.userReducer }; }
function mapDispatchToProps(dispatch) {
return {
login: (username, password) => {
dispatch(login(username, password)); // update state loggedIn
}
}
}
const LoginForm = connect(mapStateToProps, mapDispatchToProps)(Login);
export default LoginForm;
/Login.js ---这里我有一个按钮调用这个方法 loginOnPress()
loginOnPress() {
const { username, password } = this.state;
this.props.login(username, password);
console.log(this.props.user.loggedIn)
}
根据我上面的代码,我首先调用方法 'this.props.login(username, password);' 调用调度并更改状态 'loggedIn '。
然后我尝试更新状态但没有成功:
console.log(this.props.user.loggedIn)
注意:当我第二次单击此按钮时,状态会更新
【问题讨论】:
-
你应该检查
componentWillReceiveProps生命周期钩子中的 props 更改,因为当你在尝试设置它们后检查下一行的 props 时,它们的更改可能还没有传播回你的组件。跨度>
标签: react-native redux react-redux