我正在使用axios和redux的api请求返回一个response.data对象数组.
我的减速器如下:
export default function(state = [], action) {
switch (action.type) {
case FETCH_USERS:
console.log(action.payload.data)
return { ...state, users: action.payload.data };
}
return state;
}
console.log在chrome控制台中返回此值
[object, object]
我的问题出现在如何映射对象数据上.我尝试了以下将数组映射到的位置. (用户是对象数组的支柱.)
....
{this.props.users.map(this.renderUser)}
...
renderUser(user) {
return (
<tr>
<td> {user.contact_name}</td>
<td> {user.contact_email}</td>
</tr>
);
}
当我使用React控制台检查我的道具时,我得到以下信息:
users: {...}
users:
0:{...}
1:{...}
我不确定如何将对象映射到html.如果将其转换为字符串并将其映射会更好吗?我的映射显示为空白.
解决方法:
您的问题是状态与阵列名称相同,这使您感到困惑.
您的用户减速器是
const initialState = {
....
users : []
}
当您使用“用户”名称将其映射到道具时,您得到的是
this.props.users = initialState
因此,为了访问用户,您需要使用
this.props.users.users
也就是说,访问用户的方式就是这样.
....
{this.props.users.users.map(this.renderUser)}
...
renderUser(user) {
return (
<tr>
<td> {user.contact_name}</td>
<td> {user.contact_email}</td>
</tr>
);
}