kar*_*017 4 reactjs redux redux-toolkit
下面是一个例子:
const user = createSlice({
name: 'user',
initialState: { name: '', age: 20 },
reducers: {
setUserName: (state, action) => {
state.name = action.payload // mutate the state all you want with immer
}
},
// "map object API"
extraReducers: {
[counter.actions.increment]: (state, action) => {
state.age += 1
}
}
})
Run Code Online (Sandbox Code Playgroud)
我可以访问计数器状态吗?假设我只想在计数器为 30 时增加年龄。否则,当useEffect钩子中的计数发生变化时,我需要监听并调度一些处理年龄增加(?)的动作。
换句话说,根据当前全局状态使用 计算状态切片的最佳方法是redux-toolkit什么?
mar*_*son 10
这在关于在 reducer 之间共享状态的 Redux FAQ 条目中有介绍。
粘贴关键点:
- 如果reducer 需要知道来自另一个状态切片的数据,则可能需要重新组织状态树形状,以便单个reducer 处理更多数据。
- 您可能需要编写一些自定义函数来处理其中一些操作。这可能需要替换
combineReducers为您自己的顶级减速器功能。您还可以使用诸如reduce-reducersto run 之类的实用程序combineReducers来处理大多数操作,但也可以为跨状态切片的特定操作运行更专业的 reducer。- 异步操作创建者,例如
redux-thunk可以通过getState(). 动作创建者可以从状态中检索额外的数据并将其放入动作中,这样每个减速器都有足够的信息来更新自己的状态片。
| 归档时间: |
|
| 查看次数: |
3751 次 |
| 最近记录: |