Я не могу использовать useSelector () в React / Redux - PullRequest
0 голосов
/ 23 октября 2019

У меня есть следующий код, который я хочу вернуть состояние, которое будет использоваться для частных маршрутов на React Router (разрешающий доступ, когда isAuthenticated() возвращает true).

import React from 'react'
import { useSelector } from 'react-redux'

export const isAuthenticated = () => {

    const auth = useSelector(state => state)

    return auth
}

Но я получаюэта ошибка:

Line 6:  React Hook "useSelector" is called in function "isAuthenticated" which is neither a React function component or a custom React Hook function

Я не знаю, как это исправить. Кто-нибудь знает? Спасибо

Ответы [ 3 ]

2 голосов
/ 23 октября 2019

Измените имя вашей функции на useIsAuthenticated, так как вы создаете новый пользовательский хук. пользовательские крючки

1 голос
/ 23 октября 2019

Крючки разрешено использовать только при определении других крючков (которые должны начинаться с «использования») или при реализации функциональных компонентов реакции. Так что либо используйте его непосредственно в компоненте

const component = () => {
  const auth = useSelector(state => state)
  return <div> {doSomethingWith(auth)} </div>;
}

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

const useIsAuthenticated = () => {
  const auth = useSelector(state => state)
  return auth
}
0 голосов
/ 23 октября 2019

просто включите его, чтобы отреагировать на компонент функции с помощью


Функция экспорта isAuthenticated () {

const auth = useSelector(state => state)

return auth
}

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