Исключить редуктор redux-form из основного магазина - PullRequest
1 голос
/ 06 мая 2020
import { combineReducers } from 'redux'
import { reducer as form } from 'redux-form'

combineReducers({
 router: connectRouter(history),
 form,
 ....
 // huge amount of other reducers
})

Выше вы можете увидеть объединенные reducers в один store. Чем больше он становится, тем медленнее становится, потому что при каждом действии он должен делать намного больше проверок, чем было в начале. Как вы также можете видеть, я использую redux-form для обработки state в моей форме. И он начинает работать все медленнее и медленнее, когда я набираю redux-form поля. Я хочу узнать, есть ли способ создать отдельный магазин для redux-form и предотвратить его замедление. Или есть какие-то другие решения этой проблемы?

1 Ответ

0 голосов
/ 18 мая 2020

Используя redux, вы можете иметь несколько магазинов. redux-form использует connect API из react-redux для получения информации из магазина.

В React Redux классы-оболочки, сгенерированные функцией connect (), действительно ищут props.store, если он существует, но лучше всего, если вы обернете свой компонент root и позволите React Redux позаботиться о передаче хранилища. Таким образом, компонентам не нужно беспокоиться об импорте модуля хранилища, а изолировать приложение Redux или включить рендеринг сервера гораздо проще сделать позже.

https://redux.js.org/faq/store-setup#can -or-should-i- create-multiple-store-can-i-import-my-store-direct-and-use-it-in-components -self

Я redux-form соавтор.

...