第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如果語句不能正常工作 [React hooks]

如果語句不能正常工作 [React hooks]

慕工程0101907 2023-12-19 16:51:08
我正在使用 React Hooks 開發(fā)一個(gè)簡單的網(wǎng)站。在該網(wǎng)站上,我想保護(hù)路由,如果我未獲得授權(quán),該網(wǎng)站應(yīng)將我重定向到登錄,否則轉(zhuǎn)到我想要訪問的路徑。我有以下代碼,無論狀態(tài)是真還是假,它總是進(jìn)入 else 語句。我的問題是這怎么可能,或者我是否做錯(cuò)了什么我沒有注意到的事情?import React from "react";import { Route, Redirect } from "react-router-dom";import Login from "../auth/Login";function PrivateRoute({ component, ...options }) {  let status = localStorage.getItem("isAuth");  console.log("before if ", status);  if (status === true) {    console.log("if", status);    return <Route {...options} component={component} />;  } else {    console.log("else", status);    return <Route {...options} component={Login} />;  }}export default PrivateRoute;
查看完整描述

2 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

比較status的方式是使用嚴(yán)格相等=== 因此,在您的情況下,它要求您的狀態(tài)值必須為 boolean 。但是當(dāng)你從 localStorage 獲取它時(shí),它是一個(gè)字符串。請記住=== 不一樣==

在許多瀏覽器中,本地存儲(chǔ)只能存儲(chǔ)string。因此,當(dāng)您存儲(chǔ)布爾值 true 或 false 時(shí),它實(shí)際上存儲(chǔ)字符串 "true" 或 "false" 。為了取回真正的布爾值,您可以使用 JSON。

或者就您的情況而言,您可以嘗試比較status === "true",看看是否有效。


查看完整回答
反對 回復(fù) 2023-12-19
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)您從本地存儲(chǔ)獲取一些值時(shí),它是一個(gè)字符串,因此使用它如下:

  let status = localStorage.getItem("isAuth") === "true";


查看完整回答
反對 回復(fù) 2023-12-19
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號