使用createAsyncThunk时如何传递参数?
检查了这一点,但传递一个参数并破坏没有帮助。
如何在 redux 工具包中将参数传递给 createAsyncThunk?< /a>
有这个:
export const login = createAsyncThunk("users/login", async (user, params) => {
const { name, data } = params;
const { userContext } = await axios({
method: "post",
url: `loginEmail`,
data: data,
headers: {
"Content-Type": "application/json",
},
});
return userContext;
});
并收到此错误:
ERROR in src/components/CreatePost.tsx:142:25
TS2554: Expected 0 arguments, but got 1.
140 | onClick={() => {
141 | dispatch(
> 142 | login({
| ^
> 143 | email: "j",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 144 | password: "S",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 145 | })
| ^^^^^^^^^^^^^^^^^^^^
146 | );
147 | }}
调用时:
dispatch(
login({
email: "janoech",
password: "xxx",
}))
在此处导入:
import { login } from "../slices/User";
和切片:
const userSlice = createSlice({
name: "user",
initialState: {
userContext: null,
},
reducers: {},
extraReducers: (builder) => {
builder.addCase(getUser.fulfilled, (state, payload) => {
state.userContext = payload;
});
builder.addCase(logout.fulfilled, (state, payload) => {
state.userContext = null;
});
builder.addCase(login.fulfilled, (state, { payload }) => {
state.userContext = payload;
});
},
});
export default userSlice.reducer;
Checked this, but pass one argument and destructing did not help.
How do you pass arguments to createAsyncThunk in redux toolkit?
Have this:
export const login = createAsyncThunk("users/login", async (user, params) => {
const { name, data } = params;
const { userContext } = await axios({
method: "post",
url: `loginEmail`,
data: data,
headers: {
"Content-Type": "application/json",
},
});
return userContext;
});
and got this error:
ERROR in src/components/CreatePost.tsx:142:25
TS2554: Expected 0 arguments, but got 1.
140 | onClick={() => {
141 | dispatch(
> 142 | login({
| ^
> 143 | email: "j",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 144 | password: "S",
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 145 | })
| ^^^^^^^^^^^^^^^^^^^^
146 | );
147 | }}
When calling:
dispatch(
login({
email: "janoech",
password: "xxx",
}))
importing here:
import { login } from "../slices/User";
and the slice:
const userSlice = createSlice({
name: "user",
initialState: {
userContext: null,
},
reducers: {},
extraReducers: (builder) => {
builder.addCase(getUser.fulfilled, (state, payload) => {
state.userContext = payload;
});
builder.addCase(logout.fulfilled, (state, payload) => {
state.userContext = null;
});
builder.addCase(login.fulfilled, (state, { payload }) => {
state.userContext = payload;
});
},
});
export default userSlice.reducer;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论