如何使用具有依赖关系的redux工具箱切片



我有一个redux切片,它有依赖项:一些数据需要在渲染之间保留(不需要触发重新渲染,所以ref是完美的(。我目前使用useRef,但这不起作用,因为它不在组件内部。关于如何在没有裁判的情况下完成这项工作,有什么想法吗?

当然,我可以将其存储在状态中,但这会使状态在您实际需要的地方有点笨拙:{settings,currentView},因为我只需要设置。

const [getView, setView] = useRefSet("default"); // a simple wrapper around useRef to get get/set functions
const initialState = knobSettings.default;
const joinArrays = (original, newView) => ...;
const setFromViewLocal = (view) => {
let settings = [...knobSettings.default];
switch (view) {
case "sequencer":
setView("sequencer");
return joinArrays(settings, knobSettings.sequencer);
...
default:
setView("default");
return settings;
}
};
export const knobSettingsSlice = createSlice({
name: 'knobSettings',
initialState,
reducers: {
setFromView: (state, action) => setFromViewLocal(action.payload),
setFromOverlay: (state, action) => joinArrays(state, action.payload),
resetOverlay: (state) => setFromViewLocal(getView()),
}
});
export const {setFromView, setFromOverlay, resetOverlay} = knobSettingsSlice.actions;
export default knobSettingsSlice.reducer;

只需将其保留在切片中即可。如果您的任何组件都没有选择它,它将不会触发重新应答器——useSelector就是这样工作的。

相关内容

  • 没有找到相关文章

最新更新