javascript - Redux 存储双重嵌套

标签 javascript reactjs redux

我在 api 调用后得到双重嵌套状态。就是这样。

Screenshot from redux devtools

这是我的行动

export const getUserSuccess = user => ({
  type: GET_USER_SUCCESS,
  user,
});

export const getUserFailure = error => ({
  type: GET_USER_FAILURE,
  error,
});

export const getUserRequest = () => (
  dispatch => (
    axios.get('./user.json')
      .then(response => dispatch(getUserSuccess(response.data)))
      .catch(error => dispatch(getUserFailure(error)))
  )
);

这是我的用户 reducer

export default function user(state = {}, action) {
  switch (action.type) {
    case GET_USER_SUCCESS:
      return {
        ...state,
        user: action.user,
      };
    case GET_USER_FAILURE:
      return {
        ...state,
        error: action.error,
      };
    default:
      return state;
  }
}

这是我的根 reducer

export default combineReducers({
  user,
});

最佳答案

您需要传播用户的数据,无需将其分配给用户。你的 reducer 已经在里面了

case GET_USER_SUCCESS:
  return {
    ...state,
    ...action.user
  };

关于javascript - Redux 存储双重嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446644/

相关文章:

javascript - CORS 预检错误 redux & loopback API

c# - 使用 Javascript 从 ASP.NET FileUpload 控件加载图像

javascript - 如何标签过去关闭的模式链接? #a11y

javascript - 重新输入密码验证无效

javascript - 使用 redux thunk 时操作必须是普通对象

reactjs - Formik - 在 API 调用后更新初始值

javascript - Socket.io 指定心跳

reactjs - 是否可以在 Material ui 芯片组件上添加工具提示?

javascript - 动画在 react-spring 中过渡时的组件捕捉效果?

javascript - React Redux array.push 的问题