Reactjs 如何从Axios请求访问数据

Reactjs 如何从Axios请求访问数据,reactjs,redux,axios,Reactjs,Redux,Axios,我正在将React JS与Redux一起使用,在使用Axios从请求检索数据时遇到了一点问题。 以下是我的Axios请求: 从“Axios”导入Axios; 类UsersApi{ 静态getAllUsers(){ 返回Axios.get('http://localhost:3001/user)。然后(响应=>{ 返回响应; }); } } 导出默认UsersApi作为一种适当的redux方法,在内部,然后在get调用中,您需要启动一个操作来设置用户,在该操作中,您将使用reducer将您的状态

我正在将React JS与Redux一起使用,在使用Axios从请求检索数据时遇到了一点问题。
以下是我的Axios请求:

从“Axios”导入Axios;
类UsersApi{
静态getAllUsers(){
返回Axios.get('http://localhost:3001/user)。然后(响应=>{
返回响应;
});
}
}

导出默认UsersApi
作为一种适当的redux方法,在
内部,然后在
get
调用中,您需要启动一个操作来设置用户,在该操作中,您将使用reducer将您的状态替换为从api返回的新用户。

首先,您需要将用户添加到您的状态。我看到您正在使用redux,所以您应该在收到用户后发送一个操作,并让还原程序处理它:

Axios.get('http://localhost:3001/user').then(response => {
  dispatch(usersLoaded(response.data));
});
您应该有一个名为
usersLoaded
的操作和一个处理该操作的减速机:

const usersLoaded = users => ({ type: 'USERS_LOADED', payload: users });

const users = (state = [], action) => {
  switch(action.type) {
    case 'USERS_LOADED':
       return action.payload;
    default:
       return state;
  }
}

通过这种方式,您将能够访问
用户列表组件中的用户
您是否将用户添加到您的状态?@BravoZulu不,我不,然后您将无法通过用户列表中的道具访问它。我发现您的axios请求中存在问题。您将返回响应,然后将响应存储在您的状态中。确保访问响应的数据属性。示例:
.then(response=>response.data)。这样您就拥有了来自api的数据。console.log(This.props.users.data[“0”].pwd)不工作是什么意思?控制台有错误吗?您的组件中已经有一系列用户访问权限,您已成功登录。很抱歉,我忘记发布我的操作和减速器,我刚刚编辑!当您收到用户时,您没有发送操作,这就是您丢失的。您需要更改
。然后在
Axios中更改
。获取
,因为您正在返回响应,并且需要返回
响应。数据。否则,当您分派
LoadUsersAccess
时,您得到的不是一个数组,而是一个对象?这就是你想要的。数组中的每个对象都是userYes,但例如,如果我想要第一个用户的pwd,我就使用tu put console.log(this.props.users[“0”].pwd),但它不起作用。。看这里: