我正在尝试将我的应用设置为使用Redux来存储状态。我有一个使用createSlice
的文件,并且定义了我的reducer,我也想在那里定义选择器。但是,据我了解,选择器将redux存储的完整状态作为参数。问题是,我怎么知道在定义切片的位置上使用哪种类型的参数?我无法导入调用configureStore
的文件,因为configureStore
正在导入我的切片(这将导致周期性导入)。我觉得我想念什么。这是供参考的代码段:
export const slice = createSlice({
name: "timer",
initialState: {
clock: {
running: false,
elapsedMs: 0,
},
splitTimes: [],
} as TimerState,
reducers: {
start: (state) => {
if (!state.clock.running) {
state.clock = {
running: true,
baselineMs: Date.now() - state.clock.elapsedMs,
};
}
return state;
},
stop: (state) => {
if (state.clock.running) {
state.clock = {
running: false,
elapsedMs: Date.now() - state.clock.baselineMs,
};
}
return state;
},
split: (state) => {
if (state.clock.running) {
state.splitTimes.push({
timeMs: Date.now() - state.clock.baselineMs,
});
}
return state;
},
reset: (state) => {
state.splitTimes = [];
state.clock = {
running: false,
elapsedMs: 0,
};
return state;
},
},
});
export const selectClock = (state: *What type should this be?*) => state.timer.clock;