|
@@ -15,6 +15,9 @@ const userSlice = createSlice({
|
|
|
// console.log(state,action)
|
|
|
// state.name = action.payload;
|
|
|
state.name = payload;
|
|
|
+ },
|
|
|
+ setAge(state,{payload}) {
|
|
|
+ state.age+=payload
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -23,4 +26,36 @@ export default userSlice.reducer;
|
|
|
|
|
|
// 在slice对象中 有一个actions属性 类型是对象
|
|
|
// 存储所有reducer函数中的对象构建的方法
|
|
|
-export const {setName} = userSlice.actions;
|
|
|
+export const {setName,setAge} = userSlice.actions;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Redux原生不支持一步处理机制
|
|
|
+ * 需要通过一些中间件去完成
|
|
|
+ * RTK中内置了Thunk中间件可以完成一步任务处理
|
|
|
+ * 在UI组件调用dispatch时,可以传入一个Action对象,
|
|
|
+ * 还可以传入一个thunk函数
|
|
|
+ * 继而处理异步任务,处理后 在通过dispatch中的action去修改状态
|
|
|
+ *
|
|
|
+ *
|
|
|
+ * 什么是Thunk函数?
|
|
|
+ * 1.可以是普通函数,也可以是async函数
|
|
|
+ * 2.函数会接受两个参数:dispatch 和 getStaåååe 函数
|
|
|
+ * 3.dispatch:用来异步处理后,执行状态修改
|
|
|
+ * 4.getState:获取完整的store中的状态对象
|
|
|
+ */
|
|
|
+
|
|
|
+// export function asyncSetAge(age) {
|
|
|
+// return (dispatch,getState) => {
|
|
|
+// setTimeout(()=>{
|
|
|
+// dispatch(setAge(age))
|
|
|
+// },2000)
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+export const asyncSetAge = (age) => (dispatch,getState) => {
|
|
|
+ setTimeout(()=>{
|
|
|
+ dispatch(setAge(age))
|
|
|
+ },3000)
|
|
|
+}
|