React-router (4) NotFound 頁面與 useNavigate
建立 NotFound 元件
1 | // NotFound.js |
引入元件
在 App.js 中引入,當上方路由都不匹配時,會導向 NotFound 元件
1 | import NotFound from "./pages/NotFound"; |
navigate 元件
如果希望使用者到錯誤頁面後,自動導回首頁,可使用 useNavigate 方法
1 | // 在2秒鐘後,導回首頁 |
navigate 也可帶入數字,代表回到上一頁或前往下一頁
1 | // 點擊後回到上一頁 |
選用參數
useNavigate() 可以帶上選用參數,這邊也補充給大家~
replace: boolean,其值為 true 或 false。通常呼叫 navigate 會推送一個新的 entry 到 history stack,所以使用者可以按下前一頁回去,如果填入 replace: true 目前的 entry 在 history stack 內會被取代成新的。例如:當用戶點擊『購買』按鈕但需要先登入時,在登入後跳轉到結帳畫面,若使用 replace: true,當他們再次點擊回到前一頁時,不會再次看到登入頁面。
state: 可為任意值,可用 state 在跳轉路由時傳遞資料,例如:navigate(‘/login’, { state: { id: 1, } }),在 Login 元件就可以透過以下方式把傳遞值取出
1 | const location = useLocation(); |