4

我正在尝试使用 RTK 查询突变将文件上传到 API。这是我的突变代码:

    addBanner: builder.mutation({
          query(body) {
            return {
              url: `/api/banners`,
              method: 'POST',
              body,
            }
          },
        })

这是我为请求生成数据的方式。

    const [addBanner, { isBannerLoading }] = useAddBannerMutation();
    const new_banner = new FormData();    
    new_banner.append("file", my_file);
    new_banner.append("type", my_type);
    new_banner.append("title", my_title);
    addBanner(new_banner).unwrap().then( () => ... 

但我收到一个错误:

A non-serializable value was detected in the state, in the path: `api.mutations.L-Mje7bYDfyNCC4NcxFD3.originalArgs.file`...

我知道我可以完全通过中间件禁用不可序列化检查,但我认为这不是使用 Redux Toolkit 和 RTK 的合适方式。没有文件一切正常。有没有用 RTK 上传文件的正确方法?

4

1 回答 1

3

编辑:这已通过 @reduxjs/toolkit 1.6.1 修复 - 请更新您的包


我刚刚为此打开了一个问题:https ://github.com/reduxjs/redux-toolkit/issues/1239 - 感谢您提出这个问题!

现在,您可能必须禁用该检查(您可以对状态中的某个路径执行此操作,同时使用ignorePath选项保留其余路径)。

于 2021-07-02T08:45:33.960 回答