我们如何使用redux-toolkit的createSlice创建自定义 redux-orm 减速器?
是否有比此问题中提供的尝试更简单、推荐、更优雅或只是其他解决方案?
自定义 redux-orm 减速器的示例如下(简化):
function ormReducer(dbState, action) {
const session = orm.session(dbState);
const { Book } = session;
switch (action.type) {
case 'CREATE_BOOK':
Book.create(action.payload);
break;
case 'REMOVE_AUTHOR_FROM_BOOK':
Book.withId(action.payload.bookId).authors.remove(action.payload.authorId);
break;
case 'ASSIGN_PUBLISHER':
Book.withId(action.payload.bookId).publisherId = action.payload.publisherId;
break;
}
return session.state;
}
Run Code Online (Sandbox Code Playgroud)
可以使用redux-toolkit的createSlice功能来简化 reducer (基于 redux-toolkit使用指南):
const ormSlice = createSlice({
name: 'orm',
initialState: [],
reducers: {
createBook(state, action) {},
removeAuthorFromBook(state, action) {},
assignPublisher(state, …Run Code Online (Sandbox Code Playgroud)