Реакция получения состояния из хранилища Redux в пределах useEffect - PullRequest
0 голосов
/ 29 сентября 2019

Как правильно получить состояние из хранилища Redux в хуке useEffect?

    useEffect(() => { 
        const user = useSelector(state => state.user);
    });

Я пытаюсь получить текущее состояние в useEffect, ноЯ не могу использовать вызов useSelector, потому что это приводит к ошибке, утверждающей:

Invariant Violation: Hooks can only be called inside the body of a function component.

Мне кажется, я понимаю, почему, поскольку он нарушает одно из основных правил ловушек.

Из рассмотрения примера на документах Redux они, похоже, используют файл selectors.js для сбора текущего состояния, но эта ссылка на mapStateToProps, которую я понял, больше не нужна.

Нужно ли создавать какую-то функцию "getter", которая должна вызываться в хуке useEffect?

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете поместить useSelector в верхней части вашего компонента вместе с другими хуками:

const MyComponent = () => {
  ...
  const user = useSelector(state => state.user);
  ...
}

Затем вы можете получить доступ к user внутри ваших useEffect s.

...