这里是一个例子:
InputProps={{
inputComponent: () => (
<div style={{ color: "yellow" }}>XXXXXXXXXXXXXXXXX</div>
)
}}
我可以访问计数器状态吗?
假设我只想在计数器为30时增加年龄。否则,当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
}
}
})
钩中的计数发生变化时,我将需要侦听并分配一些处理年龄增加(?)的操作。
换句话说,使用useEffect
根据当前全局状态计算状态切片的最佳方法是什么?
答案 0 :(得分:7)
the Redux FAQ entry on sharing state between reducers中对此进行了介绍。
粘贴要点:
- 如果精简器需要从另一个状态片中了解数据,则可能需要重组状态树形状,以便单个精简器可以处理更多数据。
- 您可能需要编写一些自定义函数来处理其中的某些操作。这可能需要用您自己的顶级reducer函数替换
combineReducers
。您还可以使用reduce-reducers
之类的实用程序来运行combineReducers
来处理大多数操作,还可以为跨状态片的特定操作运行更专业的化简器。- 诸如
redux-thunk
之类的异步操作创建者可以通过getState()
访问整个状态。动作创建者可以从状态中检索其他数据并将其放入动作中,以便每个化简器具有足够的信息来更新其自己的状态片。