类组件:无法读取未定义的属性“用户”
2021-07-10
25
我有一个类组件 User,我想渲染
state.user
中的内容。
使用 Redux Dev Tools,我可以看到用户具有正确的值。
这是我目前所拥有的:
class User extends Component {
componentDidMount() {
this.props.getUser('60ab0b564fbb1d334002c777');
}
renderUser = (user) => {
return (
user !== {} ? <p>{user.name}</p> : 'User not found'
)
}
render() {
console.log('props', this.props);
return (
<div>
{this.renderUser(this.props.users.user)}
</div>
)
}
}
const mapStateToProps = state => ({
user: state.user,
})
export default connect(mapStateToProps, {
getUser,
})(User);
当我在 render 方法下记录
this.props
时,它会记录:
getUser: ƒ ()
user: undefined
在我组合 Reducer 的商店中,我有:
const rootReducer = combineReducers({
users: userReducer
});
这就是为什么我需要执行
this.props.users.user
来获取用户。
用户的初始状态是
{
2个回答
我认为你在 mapStateToProps 中做错了。
在那里执行此操作
user: state.users
然后在 render 方法中
this.props.user.user
Irfan wani
2021-07-10
您的初始状态应该是
用户的初始状态是
{name: ''>
而不是
{
。因为当组件第一次渲染时,您的函数需要访问
user.name
这里也有拼写错误
const mapStateToProps = state => ({
user: state.users,
})
underscore
2021-07-10