如何使用 Redux Thunk 和 Redux Toolkit 进行发布请求

认识巴洛迪亚

我一直在使用Redux-Toolkit超过React-Redux. 我遇到了我必须提出GET请求的情况,所以我最近开始使用Redux-Thunk(在此之前我使用useEffect但是,因为它不是处理函数的标准方式async,使用 redux 时。我了解了middleware)。

是我Thunk function处理请求的代码extraReducerGET

export const fetchData = createAsyncThunk("type/getData", async () => {
    try {
        const response = await axios({url});
        return response.data;
    } catch (error) {
        console.log(error.response);
    }
});

export const extraReducers = {
    [fetchData.pending]: (state) => {
        state.loading = true;
    },
    [fetchData.fulfilled]: (state, action) => {
        state.loading = false;
        state.products = action.payload;
    },
    [fetchData.rejected]: (state) => {
        state.loading = false;
        state.error = true;
    },
};

fetchData函数中,我的返回response.data值被使用,extraReducers因此payload我可以轻松设置状态。但是,现在的情况是我发出了一个发布请求,但我不知道如何将数据发送到我的Thunk函数。

什么

首先,您创建发布数据的操作并发送data

export const postData = createAsyncThunk(
  "type/postData",
  async (data) => {
    try {
      const response = await axios.post("https://reqres.in/api/users", data);
      // If you want to get something back
      return response.data;
    } catch (err) {
      console.error(err)
    }
  }
);

然后在您想要发送该数据的地方,您只需使用data您想要发送的参数发送此操作:

const handlePost = () => {
  // whatever you want to send
  const data = .........
  
  dispatch(postData(data));
}

如果你愿意,你也可以修改你的extraReducersfor this action。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用React,Jest,Redux和Thunk进行测试中的无限循环

与Axios API结合使用时,Redux-Thunk和Redux-Promise有什么区别?

为什么要使用redux-thunk或redux-saga进行提取?

如何使用redux-thunk`bindActionCreators`

NextJS Redux,Thunk和getInitialProps-如何实现

使用redux-thunk / redux-observable进行redux的回调

使用redux-thunk和redux-observable

如何使用Redux 4.0.1,Redux-Thunk 2.3.0和Typescript 3.1.3正确键入Redux-thunk操作和mapDispatchToProps

使用React Redux进行Firebase身份验证Redux-Thunk

如何添加`redux-thunk`和`redux-promise`?

使用Redux Thunk和Axios测试Action Creator

Redux和Redux thunk不同步

通过redux / redux-thunk发布到mongoDB

Redux-Logic和Redux-thunk之间的区别

如何在Redux Toolkit的createSlice中使用Redux-Thunk?

使用redux-thunk取消之前的提取请求

如何使用axios使用redux-thunk进行调度

Redux Thunk和异步操作

使用Redux Toolkit和Typescript反应可观察的史诗

什么时候使用redux saga和redux thunk?

如何使用thunk和useDispatch(react-redux挂钩)从操作中返回承诺?

Redux Thunk 如何实现

使用 react native 和 redux 进行异步调用,thunk

Redux 和 Redux-thunk

如何正确使用 Redux Toolkit 中的 createAsyncThunk 和 TypeScript?

使用 redux thunk 进行异步 api 获取

如果我使用 Redux Toolkit 和 RTK-Query,需要 thunk 吗?

如何从 redux toolkit async thunk 的挂起状态修改另一个切片的状态

使用多个参数进行调度并使用 Redux Toolkit 创建操作