У меня есть файл, который экспортирует различные служебные функции для использования через компоненты, и эти функции должны получить доступ к состоянию редукции. Как импортировать объект состояния в этот файл?Как получить доступ к хранилищу реакции-редукта вне компонента
ответ
Утилита должна получить состояние в качестве аргумента.
Потому что вы хотите использовать утилиту в компонентов (просмотров), вы можете сохранить состояние в переменной-члена на вашем смарт-компонент (тот, используя connect()
функцию) с помощью mapStateToProps(state)
обратного вызова. , то вы можете передать этот член своим немым компонентам.
connect
не работает здесь, если ваши функции полезности не являются react
элементов.
Лучшая идея заключается в том, импорт создать магазин, а затем использовать функцию getState
,
import store from 'store/createStore';
const state = store.getState();
Я закончил тем, что просто пропустил n дополнительные реквизиты функции полезности из компонента контейнера –
Ну, это не простой ответ, но после изучения этого слишком долго, я нашел их, которые являются единственным 2 статьи, которые объясняют что-либо. Они объясняют, как получить доступ к хранилищу непосредственно за пределами Компонента (если нужно), а также упомянуть философию чистых функций/функционального программирования, а также потенциальные проблемы с производительностью при непосредственном подключении к хранилищу некомпонентных функций. Лично я пошел с @anoop и передал параметры вокруг в одном объекте настолько глубоко, насколько это необходимо.
Для прямого подключения (который получает от магазина this.context пути подключения() не смотрите обсуждение here и конкретно gaearon Прокомментируют сны 16, 2015 и 22 сен, 2015 Это кажется, что этот доступ может быть достигается с помощью функции Connect()
для небольшого чтения по функциональному программированию/чистых функций, смотрите обсуждение here
вы должны были бы передать членам утилиты КАЖДЫЙ раз, когда вы хотите использовать его, было бы здорово, если утилита может просто получить доступ к этим членам, чтобы мы не повторяли код ... – Vic