سلام استاد خسته نباشید. در پیاده سازی action و reducer برای user , course در پروژه تاپلرن اشکال دارم. ممکنه ببینید در کد زیر کجا اشکال هست؟
import {createSlice} from '@reduxjs/toolkit';
export const userSlice = createSlice({
name: "user",
initialState: {},
reducers:{
addUser: (state, action) => {
state.user = action.payload
},
clearUse: (state) => {
state.user = {}
}
},
});
export const { addUser, clearUser } = userSlice.actions
export default userSlice.reducer
-------------------------------------------------------------------
import {createAsyncThunk, createSlice} from '@reduxjs/toolkit';
import { getCourses } from "../services/courseService";
export const getAllCourses = createAsyncThunk("courses/getCourses", async () => {
const { data } = await getCourses();
return data.courses;
});
export const coursesSlice = createSlice({
name: "courses",
initialState: [],
reducers:{},
extraReducers: {
[getAllCourses.pending.type]: (state) => {
state = {
status: "loading",
data: [],
error: {},
};
},
[getAllCourses.fulfilled.type]: (state, action) => {
state = {
status: "done",
data: action.payload,
error: {},
};
},
[getAllCourses.rejected.type]: (state, action) => {
state = {
status: "error",
data: [],
error: action.payload,
};
},
},
});
export default coursesSlice.reducer
سلام دوست من
چه مشکلی هست ؟
سلام, مشکل اینه که لاگین میشه و در redux devtools در قسمت actions اطلاعات کاربر میشینه ولی در state کاربر خالی هست و در بالای صفحه اپلیکیشن هم اسم کاربر رو نشون نمیده و دوره ها هم نه در redux devtools نشون میده نه در app. با syntax قدیم redux کدها کار میکنه فقط تو store باید بجای createStore بنویسیم configureStore ولی وقتی action و reducer رو با syntax جدید که در بالا نوشتم جایگزین میکنم ایراد داره.
ریداکس استفاده شده در دوره قبلی منسوخ شده و باید از ورژن جدید استفاده کنی
پیشنهاد میکنم برای فصل جدید صبر کنی چون در فصل بعدی ریداکس رو کامل آموزش میدم و تمرین خوبی میشه برات که بعد از یادگیری مجدد ورژن جدید پروژه دوره قبلی رو هم تبدیل کنی خودت.
استاد خواهشا همین کدهای بالا رو تصحیح کنید تا اموزش ریداکس در دوره جدید نمی تونم صبر کنم. چون تا به ریداکس برسیم در فصل بعد میشه دو ماه دیگر. ممنون از شما.