gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:47:16 26 4
gpt4 key购买 nike

我想为我工作的项目中的用户创建一个 Redux 切片。我有 this code sandbox而且我不知道为什么 MyButton.tsx 文件中的 fetchAll 调用会出现以下错误:

fetchAll(arg: any): AsyncThunkAction<unknown, any, {}>

Expected 1 arguments, but got 0.

createAsyncThunk.d.ts(107, 118): An argument for 'arg' was not provided.

我在我工作的项目中有类似的代码,但没有这个错误。我希望它能像在其他类似文件中一样工作。

沙箱中的相关文件:

我的按钮.tsx

import React from "react";
import { useDispatch } from "react-redux";
import { fetchAll } from "./redux/usersSlice";

export const MyButton = ({ children }: { children: any }) => {
const dispatch = useDispatch();

return (
<button
onClick={() => {
dispatch(fetchAll()); // I get an error on this fetchAll() call
}}
>
{children}
</button>
);
};

fetchAll的定义

export const fetchAll = createAsyncThunk(
"users/fetchAll",
async (_: any, thunkAPI) => {
const users = await new Promise((resolve, reject) => {
resolve(["a", "b", "c"]);
});

return users;
}
);

更新1

如果我调用 fetchAll(null) 而不是 fetchAll(),它运行良好。

最佳答案

如果您不需要该参数,请使用 void 类型。 any 强制一个参数。

export const fetchAll = createAsyncThunk(
"users/fetchAll",
async (_: void, thunkAPI) => {
const users = await new Promise((resolve, reject) => {
resolve(["a", "b", "c"]);
});

return users;
}
);

关于typescript - 如何正确使用 Redux Toolkit 中的 createAsyncThunk 和 TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67968873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com