Есть ли хорошо известный шаблон для внедрения полезной нагрузки динамического начального состояния в объект initialState Redux-Toolkit?
То есть я хотел бы сделать это -
import initialState from './initialState';
function generateSlice(payload = {}){
const postsSlice = createSlice({
name: 'posts',
initialState: {...initialState, ...payload}, /// inject data here
reducers: {...}
})
}
Например, {availableRooms: []}
- это пустой массив, если он не введен при инициализации с данными {availableRooms: [{...}]}
Однако этот шаблон не работает, b / c я хочу экспортировать действия для отправки, что-то вроде этого:
const postsSlice = createSlice({
name: 'posts',
initialState: {...initialState, ...payload},
reducers: {...}
})
export {actionName} from postsSlice.actions;
*****
import {actionName} from '../mySlice'
...
const dispatch = useDispatch();
dispatch(actionName('exampleVal'));
...
Я ограничен airbnb
правилами линтинга, поэтому я не могу экспортировать на let -
let actions; ///Bad
function generateSlice(payload){
const postsSlice = createSlice({
name: 'posts',
initialState: {...initialState, ...payload},
reducers: {...}
})
actions = postsSlict.actions
}
export actions;
Функции, которые мне нужны, немного проще без использования createSlice
. Причина моего вопроса в том, что я видел во многих местах, что createSlice
рекомендуется вместо createAction
+ createReducer
, но я не вижу простого способа представить динамические данные, которые я ищу.
Я ничего не знаю о redux-orm
, но думаю, что функциональные возможности, которые мне нужны, аналогичны этот ТАК вопрос
createSlice
. Я опубликую код в качестве ответа на обходной путь, но меня интересуют другие / лучшие ответы. - person nrako   schedule 02.12.2020