Динамически загружать initialState с помощью createSlice в Redux Toolkit - PullRequest
0 голосов
/ 02 апреля 2020

Есть ли известный шаблон для ввода полезной нагрузки начального состояния динамического c в объект initialState Redux-Toolkit?

То есть я хотел бы сделать это -

import initialState from './initialState';

function generateSlice(payload = {}){
  const postsSlice = createSlice({
    name: 'posts',
    initialState: {...initialState, ...payload}, /// inject data here
    reducers: {...}
  })
}

Например, {availableRooms: []} - это пустой массив, если только он не внедрен в init с данными {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 linting, поэтому я не могу экспортировать на 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, но я не вижу простого способа представить данные Dynami c, которые я ищу .

Я ничего не знаю о redux-orm, но думаю, что функциональность, которая мне нужна, похожа на этот вопрос SO

...