Путаница с тем, как используется селектор Redux - PullRequest
0 голосов
/ 29 марта 2020

Я изучал Redux и наткнулся на концепцию селектора Redux. Мне стало любопытно, что это было, и я обнаружил, что это функция, которая инкапсулирует логи c среза состояния хранилища, чтобы мы могли использовать ее повторно. Вот код:

function mapStateToProps(state) {
  return {
    incompleteTodos: state.todos.filter((todo) => {
      return !todo.completed
    });
  }
}

Становится

function mapStateToProps(state) {
  return {
    incompleteTodos: getIncompleteTodos(state)
  };
}

Но вопрос, который я хотел задать, заключается в том, правда ли, что когда мы используем селектор, как этот incompleteTodos: getIncompleteTodos (state) отдельно из возможность повторного использования мы также получаем памятка по умолчанию. Таким образом, нам не нужно использовать библиотеку перевыбора. Это правда?

1 Ответ

1 голос
/ 29 марта 2020

Короткий ответ на ваш вопрос: Нет. По умолчанию свойства в mapStateToProps рассчитываются каждый раз, когда компонент обновляется, но есть и другие решения:

  1. Повторно выберите библиотеку, о которой вы упоминаете, это официальный пакет команды Redux, так что вы можете доверять ей.
  2. Вы можете использовать пакет Redux Toolkit, который также является официальной библиотекой, и из коробки также есть Reselect.
  3. Вы можете использовать Redux Hook - useSelector который по умолчанию ведет себя как запомненное свойство, так что я думаю, это то, что вас интересует, с точки зрения запоминания по умолчанию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...