【发布时间】:2022-12-21 13:02:30
【问题描述】:
我正在使用 Redux/Toolkit,我想使用 Async Thunk 进行身份验证过程。但是当我尝试分派该函数时它会返回一个错误。
在这种情况下我该怎么办?这是我第一次使用 Async Thunk,所以我不知道如何面对这个问题。
顺便说一下,我正在使用 Typescript。所以,我认为这个问题主要是关于 Typescript 的。
userSlice.tsx 文件:
import {createSlice, createAsyncThunk} from "@reduxjs/toolkit"
import {InterfaceUserSlice} from "../typescript/interfaceUserSlice"
import axios from "../axios"
export const UserLogin = createAsyncThunk("/users/authentication", async (user:{email:string,password:string}) => {
try{
const res = await axios.post("/users/authentication", user)
...
} catch(err){
...
}
})
const initialState:InterfaceUserSlice = {
...
}
const userSlice = createSlice({
name: "user",
initialState,
reducers: {},
extraReducers: (builder) => {}
})
export default userSlice.reducer
Login.tsx 页面文件:
import React, {useState} from "react"
import { useDispatch } from "react-redux"
import { UserLogin } from "../redux/userSlice"
const Login = () => {
const dispatch = useDispatch()
const [email, setEmail] = useState<string>("")
const [password, setPassword] = useState<string>("")
function LoginRequest(){
dispatch(UserLogin({email,password})) //This is the point that I have the error which says: "Argument of type 'AsyncThunkAction<void, { email: string; password: string; }, AsyncThunkConfig>' is not assignable to parameter of type 'AnyAction'."
}
return (
...
)
}
export default Login
【问题讨论】:
标签: javascript reactjs typescript redux-toolkit redux-thunk