Страница назад для входа в систему вызов навигации() при вызове прямой ссылки Реагирует Js

#javascript #reactjs #use-effect

#язык JavaScript #реагирует на #эффект использования

Вопрос:

Я новичок в реакциях. При начальной загрузке страницы я хочу проверить, является ли состояние нулевым, затем я хочу перенаправить на другую страницу входа

Вот код компонента:

 export default function Addblousesalwar() {  const navigate = useNavigate();  const { state } = useLocation();  console.log(state) //null  if(state === null || state === undefined){  navigate("/login")  }  

Но это показывает ошибку:

Вы должны вызывать функцию navigate() в React.useEffect(), а не при первом отображении вашего компонента. Я также попробовал использовать эффект. Но эффект использования не выполняется.

 useEffect(() =gt; {  if(state === null || state === undefined){  navigate("/login")  }  }, []);    useEffect(() =gt; {  if(state === null || state === undefined){  navigate("/login")  }  }, []);  

Я тоже пробовал это

 useEffect(() =gt; {  if(state === null || state === undefined){  navigate("/login")  }  }, [state]);  

Этот эффект использования также не срабатывает Пожалуйста, помогите мне с некоторыми решениями

Комментарии:

1. В комментарии вы упомянули, что получаете «ошибку типа: не удается уничтожить свойство»Имя пользователя «»состояния», поскольку оно равно нулю «. Таким образом, ошибка, похоже, находится в другом месте, которое не включено в опубликованный вами код.

2. @GabrielePetrioli Да, это из другого места. Иногда я получаю значение null из другого места. Поэтому я хочу разобраться с этой ошибкой. Если он был равен нулю, я хочу перенаправить его на страницу входа в систему….

3. если вы исправите эту ошибку, деструктурирование useEffect будет выполнено, и произойдет навигация.

Ответ №1:

Состояние может содержать пустой объект {} . Попробуйте также проверить условие для пустого объекта

 useEffect(() =gt; { if(state === null || state === undefined || state === {}){  navigate("/") } }, [state]);  

Комментарии:

1. Ошибка типа: Не удается уничтожить свойство «Имя пользователя «»состояния», так как оно равно нулю.

2. state === {} всегда будет возвращаться false .

3. @somaiyappan Я попробовал ваш код, и он перенаправляется на login «когда state null «.