我正在尝试将结果从Redux状态获取到组件。我收到一个错误-未捕获的TypeError:users.map不是一个函数。
这是我的代码以及提交搜索表单时出错的代码。
<form onSubmit={this.handleSubmit.bind(this)}>
<select
....
const mapStateToProps = state => ({
users: state.Result.users
})
答案 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
})