Здравствуйте, возник такой вопрос нужно ли записывать данные с формы в redux перед отправкой на сервер?
Я использую redux toolkit вместе с redux saga, какой стратегии я должен придерживаться при отправки данных на сервер?
Как правильно передать payload в saga Worker с формы, и нужнен ли payload в toolkit?
Буду благодарен за помощь
TOOLKIT
const usersSlice = createSlice({
name: 'users',
initialState: {
data: undefined,
isAuth: false,
loginError: '',
},
reducers: {
fetchLogin: (_, { payload }) => payload,
setUserData: (state, action) => {
state.data = action.payload
},
setAuth: (state, action) => {
state.isAuth = action.payload
},
setLoginError: (state, action) => {
state.loginError = action.payload
},
},
})
export default usersSlice.reducer
export const { setUserData, setAuth, setLoginError, fetchLogin } = usersSlice.actions
SAGA
export function* fetchLoginWorker({ payload }: any): Generator<any> {
try {
console.log(payload)
const response: any = yield call(AuthApi.login, payload)
localStorage.setItem('token', response.data.accessToken)
yield put(setAuth(true))
yield put(setUserData(response.data.user))
} catch (e) {
console.log(e.response?.data?.message)
yield put(setLoginError(e.response?.data?.message))
}
}
export function* usersSaga() {
yield takeEvery(fetchLogin.type, fetchLoginWorker)
}
FORM SUBMIT
const onSubmit: SubmitHandler<ILoginInputs> = async (data) => {
dispatch(fetchLogin(data))
}