Как разделить состояние между функциями Rekit? - PullRequest
0 голосов
/ 28 мая 2018

Я использую Rekit , и мне это очень нравится, оно значительно упростило задачу изучения React и Redux, но его слегка взвешенный взгляд на то, как структурировать вещи, заставляет меня задуматься, что лучшепрактиковать разделение состояния между двумя различными функциями приложения (например, вошедшим в систему пользователем и, возможно, некоторыми другими данными).

Я мог бы перейти к localStorage, но это кажется противоречащим идее, что Redux является "источником"истины ".

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 октября 2018

Это не вопрос Rekit, ваш вопрос на самом деле является вопросом Redux.

Компоненты компонентов - это компоненты, связанные с Redux, то есть в самом низу файла компонентов вы найдете что-то вроде этого:

export default connect(mapStateToProps, mapDispatchToProps)(DefaultPage)

Первый параметр connect - это mapStateToProps, это функция, которую вы хотите просмотреть, поскольку она позволяет получить доступ ко всему хранилищу Redux и извлечь некоторые значения, которые будут переданы каксвойство компонента (this.props).

Rekit добавляет этот метод в ваши компоненты для вас, но он только импортирует данные хранилища компонента по умолчанию.Вам нужно добавить состояние других функций, к которым вы хотите получить доступ.

Например, у меня есть компонент LoginPage в функции Users.Функция mapStateToProps компонента LoginPage выглядит следующим образом:

function mapStateToProps(state) {
  return {
    users: state.users,
  }
}

Как видите, функция получает глобальный объект Redux state, переданный в качестве параметра, а функция извлекает state.usersи назначьте его в качестве опоры с именем users (возвращенные значения этой функции переводятся как props в качестве ее названия, указывающего это).

К вашему сведению: users состояния определено в Others/common/rootReducer.js файл, чтобы Redux знал об этом.

Теперь, если у вас есть функция Config Rekit, так что state.config будет содержать все состояния definef из этой функции.Чтобы получить доступ к его состоянию, вам нужно будет добавить config: state.config, и тогда состояния конфигурации будут доступны в компоненте this.props:

function mapStateToProps(state) {
  return {
    config: state.config,
    users: state.users,
  }
}

Например, например, функция Configопределил ключ состояния signUpOpen для true, и вы хотите проверить его из компонента LoginPage, если регистрация открыта.

С этим кодом в компоненте LoginPage render() Я могу получить доступ this.props.signUpOpen.

Если вам нужна дополнительная информация, пожалуйста, проверьте документацию Redux .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...