React Redux-获取组件状态-Uncaught TypeError:users.map不是一个函数

时间:2018-08-13 03:55:05

标签: reactjs redux

我正在尝试将结果从Redux状态获取到组件。我收到一个错误-未捕获的TypeError:users.map不是一个函数。

这是我的代码以及提交搜索表单时出错的代码。

          <form onSubmit={this.handleSubmit.bind(this)}>
            <select
....
    const mapStateToProps = state => ({
      users: state.Result.users
})

2 个答案:

答案 0 :(得分:2)

您应该映射数据,而不仅仅是用户:

<ul>
  {users.data.map(userlist => <li key={userlist.id}>{userlist.username}</li>)}
</ul>

一种更好的处理方式:

{users && users.data && users.data.map(...)}

这将确保仅在有用户和用户数据的情况下运行地图。

或者只是

{users.data && users.data.map(...)} // if you're sure to get users always

答案 1 :(得分:1)

问题出在您的mapStatetoProps中。在您的商店中,您有users.data,但是出于某种原因要映射Result.users,这会使this.props.users为空。

尝试将其更改为以下内容:

const mapStateToProps = state => ({
  users: state.Result.users
})