Javascript 已获取数据,但状态未更新
我正在从端点获取数据。但是状态没有更新。它总是未定义的 由于某些原因,this.props.users未定义。我做错什么了吗 在componentDidMount()之后,我触发操作fetchUsers向端点发送请求。已成功获取数据,但最后状态未更新 这是我的布局组件Javascript 已获取数据,但状态未更新,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在从端点获取数据。但是状态没有更新。它总是未定义的 由于某些原因,this.props.users未定义。我做错什么了吗 在componentDidMount()之后,我触发操作fetchUsers向端点发送请求。已成功获取数据,但最后状态未更新 这是我的布局组件 class Layout extends Component { render() { return ( <div className="container">
class Layout extends Component {
render() {
return (
<div className="container">
{
this.props.users.map((user, key) => {
return <a className="list-group-item list-group-item-action active">User #{user.id}</a>
})
}
</div>
)
}
}
const mapStateToProps = state => {
return {
channels: state.users.data,
}
}
const mapDispatchToProps = dispatch => {
return {
fetchUsers: () =>
dispatch(user.fetchUsers()),
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Layout);
我认为错误来自于您在
mapDispatchToProps
中呼叫调度员。由于您直接导出函数fetchUsers
,因此不应调用user.fetchUsers
const mapDispatchToProps = dispatch => {
return {
fetchUsers: () =>
dispatch(fetchUsers()),
}
}
如何导入
fetchUsers
?当您连接组件时,确实不需要mapDispatchToProps
,组件DispatchToprops
已注入组件。aka导出默认连接(mapStateToProps)(布局)
。。。。然后在您的组件中安装this.props.dispatch(fetchUsers())
const initialState = {
users: []
};
export default function channels(state = initialState, action) {
switch (action.type) {
case 'USERS_FETCHED':
return { ...state, users: action.data };
default:
return state;
}
}
const mapDispatchToProps = dispatch => {
return {
fetchUsers: () =>
dispatch(fetchUsers()),
}
}