Я динамически добавляю удаление редукторов в состояние редукции и использую функцию реакции-редукса для отображения состояния в реквизит. Я делаю добавление / удаление редукторов, как показано на
https://redux.js.org/recipes/code-splitting с использованием метода reducerManager.
в какой-то момент ниже код запускается
...
store.reducerManager.add(campaign.campaignId, UDP.getReducer());
console.log('reducer map', store.reducerManager.getReducerMap());
return (<UDP campaign={campaign}/>);
....
, который впоследствии монтирует UDP:
...
const mapStateToProps = (state, ownProps) => {
console.log('[stt]', state)
return({
language: state.appstate.language,
currentViewData: state.appstate.currentViewData,
currentView: state.appstate.currentView,
connectedStampId: state.bluetooth.connectedStampId,
isBTConnected: state.bluetooth.isBTConnected,
isActing: state[ownProps.campaign.campaignId].isActing,
})
}
export default connect(mapStateToProps,null,null) (UDP);
Проблема в том, что при запуске mapStateToProps
state[ownProps.campaign.campaignId]
не определено, тогда как console.log ('карта редуктора' ... показывает, что он находится в состоянии. Однако состояние, переданное в mapStateToProps, не содержит его.
(также mapStateToProps запускается второй раз сразу после первого, затем состояние корректно)
Я не знаю, делаю ли я что-то не разрешенное (провайдером / response-redux) или делаю что-то не так.