javascript - ReduxThunk 如何将 Action 数据传递到原始状态?

标签 javascript reactjs react-redux redux-thunk

我想将 Action 数据传递到初始状态,而不用等待数据被获取。

我遵循了本教程并且它有效,但我正在尝试修改它以解析任何 JSON 数据并且它也有效但我一直必须输入用户名才能获取数据我希望它可以从初始状态。对不起,如果我没有解释清楚,但我希望你能明白。

const initialState = {
  userData: {},
  isFetching: false,
  isError: false
};

const asyncReducer = (state = initialState, action) => {
  switch (action.type) {
    case "FETCH_USER":
      return Object.assign({}, state, {
        isFetching: true,
        userData: {},
        isError: false
      });
      case "FETCHED_USER":
        return Object.assign({}, state, {
          userData: action.data,
          isFetching: false,
          isError: false
        });
      case "RECEIVE_ERROR":
        return Object.assign({}, state, {
          isError: true,
          isFetching: false
        });
    default:
      return state;
  }
};

export default asyncReducer;

最佳答案

你的问题有点不清楚,没有 Action 代码可以通过我想你的意思是你想在你的 Action 创建者中访问 redux 存储,这样你就不必从你的后端或任何地方获取用户数据每次都正确吗?如果是这种情况,您可以非常简单地在分派(dispatch)后向 thunk 添加第二个参数并获取状态。然后您将拥有状态值供您修改。因此,您可以在操作中执行以下操作:

const myAction = () => (dispatch, getState) => {
  const userData = getState().userData;
  ...do your stuff with that
  dispatch({
    type: "FETCHED_USER",
    data: new_stuff
  });
}

关于javascript - ReduxThunk 如何将 Action 数据传递到原始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57312326/

相关文章:

javascript - sails 中的嵌套模型和 Controller 不起作用

javascript - 多个 <select> 使用 selectize,已选择时删除选项

javascript - 我怎样才能用javascript生成一个字母

javascript - 我的 onClick() 出现问题。更新数组中错误索引的数据?

javascript - 创建子组件后如何将数据从父组件传递给子组件?

javascript - 如何在js文件中使用另一个js文件中的函数?

javascript - 如何渲染同一组件的不同布局?

javascript - 使用history.push时如何正确清理useEffect?

reactjs - 如何在子组件中正确使用mapDispatchToProps函数?

javascript - 本地package.json存在,但缺少node_modules