React native Redux React Native:更新状态后未定义的对象
我已经设置了减速机、action和store,它们似乎工作得很好。但是,当我尝试通过this.props访问存储时,会得到未定义的对象。知道为什么会这样吗 Index.js:React native Redux React Native:更新状态后未定义的对象,react-native,redux,React Native,Redux,我已经设置了减速机、action和store,它们似乎工作得很好。但是,当我尝试通过this.props访问存储时,会得到未定义的对象。知道为什么会这样吗 Index.js: class Index extends React.Component { render() { console.log("##########################") console.log(this.props)
class Index extends React.Component {
render() {
console.log("##########################")
console.log(this.props)
this.props.dispatchloggedInUser("User found");
console.log(this.props.dispatchGetUser())
console.log("###########################")
return <Root/>;
}
}
function mapDispatchToProps(dispatch) {
return {
dispatchloggedInUser: (data) => dispatch(loggedInUser(data)),
dispatchGetUser: () => dispatch(getUser())
}
}
function mapStateToProps(state) {
return {
user: state.user
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Index)
查看您的根减速机-用户可能嵌套在
auth
或类似的目录下-以了解:
function mapStateToProps(state) {
console.log(state);
return {
user: state.auth.user // or ?
}
}
我认为你应该改变这一部分:
case LOGGED_IN: {
console.log("Inside Logged IN")
console.log(state)
return [
...state,
{
user: action.data
}
]
}
到
这当然是需要考虑的问题之一,但在我的案例中,它的设置是正确的。我能够解决它(更新了问题)!谢谢我能弄明白。基本上,如果您使用联合收割机减速器,请确保您考虑多级状态。
case LOGGED_IN: {
console.log("Inside Logged IN")
console.log(state)
return [
...state,
{
user: action.data
}
]
}
case LOGGED_IN: {
console.log("Inside Logged IN")
console.log(state)
let user = action.data
return {...state, user}
}