Rumah > Soal Jawab > teks badan
Saya ada tab logistik jika logisticData
值为 null,我会将页面重定向到 "/logistic"
from ":logisticId/edit"
Tetapi apabila saya melaksanakan kod ini ia tidak mengubah hala kod
function EditLogistic() { const { state } = useLocation(); const logisticData = state; console.log(logisticData) const navigate = useNavigate(); if (!logisticData) { console.log("empty") navigate('/logistic') redirect('/logistic') } }
Saya tertanya-tanya sama ada saya melakukan sesuatu yang salah atau ada cara untuk mencapai ini?
P粉3524080382024-02-26 18:29:38
redirect
Fungsi utiliti hanya sah dalam fungsi pemuat dan operasi penghala data, bukan dalam komponen React.
Anda boleh mengeluarkan useEffect
挂钩中的 navigate
imperatif tindakan navigasi melalui fungsi :
import { useLocation, useNavigate } from 'react-router-dom'; function EditLogistic() { const { state } = useLocation(); const logisticData = state; const navigate = useNavigate(); useEffect(() => { if (!logisticData) { navigate("/logistic", { replace: true }); } }, [logisticData, navigate]); ... }
Atau anda boleh mengeluarkan Navigate
perisytiharan tindakan navigasi melalui komponen :
import { Navigate, useLocation } from 'react-router-dom'; function EditLogistic() { const { state } = useLocation(); const logisticData = state; if (!logisticData) { return; } ... }