Вместо запуска redux action функции, возвращается код
Столкнулся с проблемой в моем pet проекте, у меня авторизация работает вместе с redux. Проблема в том что action не запускается, а возвращает код в таком виде(засунул его в console log)
.
Самое интересное в том что выше тоже есть action функция, она работает исправно(возвращает undefined).
Вот весь код:
// auth actions
// right action
export const fetchAuthData = () => {
return async (dispatch: Dispatch<authAction>) => {
try{
dispatch({type: "AuthFetch", user: null, loading: true, message: "Fetching"})
const response = await Fetch.auth.getUserData()
console.log("here")
if(response.body) {
const {username, userType} = response.body
dispatch({type: "AuthSuccess", user: {username, userType}, loading: false, message: null})
}else if(response.message){
dispatch({type: "AuthError", user: null, loading: false, error: response.message})
}else {
throw "Something went wrong"
}
}catch (err) {
dispatch({type: "AuthError", user: null, loading: false, error: `${err}`})
}
}
}
// wrong action
export const loginAction = (payload: ILogin) => {
return async (dispatch: Dispatch<authAction>) => {
try {
console.log("wth?");
dispatch({type: "AuthFetch", user: null, loading: true, message: "Fetching"})
const response = await Fetch.auth.login(payload)
console.log(payload)
if(response.status === "success") {
fetchAuthData()
}else {
throw response.message
}
}catch (err) {
dispatch({type: "AuthError", user: null, loading: false, error: `${err}`})
}
}
}
//actions index
import * as authActions from "./auth";
export const Actions = {
...authActions,
}
// authReducer
const defaultState: IAuthState = {
user: null,
loading: false,
message: null
}
export const authReducer = (state: IAuthState = defaultState, action: authAction): IAuthState => {
switch (action.type) {
case "AuthFetch":
return {user: action.user, loading: action.loading, message: action.message}
case "AuthSuccess":
return {user: action.user, loading: action.loading, message: action.message}
case "AuthError":
return {user: action.user, loading: action.loading, message: action.error}
default: return state
}
}
// reducers index
import {combineReducers} from "redux";
import {authReducer} from "./authReducer";
export const rootReducer = combineReducers({
auth: authReducer,
})
export type RootState = ReturnType<typeof rootReducer>
// store index
import {createStore, applyMiddleware} from "redux";
import thunk from "redux-thunk";
import {rootReducer} from "./reducers";
export const store = createStore(rootReducer, applyMiddleware(thunk))
// useAction hook
import {useDispatch} from "react-redux";
import {bindActionCreators} from "redux";
import {Actions} from '../store/actions'
export const useActions = () => {
const dispatch = useDispatch()
return bindActionCreators(Actions, dispatch)
}
Благодарю за внимание
Ответы (1 шт):
Автор решения: vfrcp
→ Ссылка
Проблема была в импорте, ide автоматом импортировал с файла. Нужно было импортировать с хука