実現したいこと
ログイン状態を元にヘッダーの表示を切り替えたい
発生している問題・分からないこと
Reactで条件式が機能していないです。
以下のコードで、console.logでは isAuthがfalseなのにもかかわらずログインが表示されない状態です。
該当のソースコード
header.js
1 2import React from 'react' 3import {Link} from "react-router-dom"; 4 5const Header = (isAuth) => { 6 console.log(isAuth); //ここではfalseになっている 7 return ( 8 <> 9 <Link to="/">ホーム</Link> 10 11 {!isAuth ? <Link to="/login">ログイン</Link> : <><Link to="/createconcept">新機能作成</Link> <Link to="/logout">ログアウト</Link></>} //なぜかログインが表示されない 12 13 </> 14 ) 15} 16 17export default Header
App.js
1import './App.css'; 2import {BrowserRouter as Router, Routes, Route, Link} from "react-router-dom" 3import Home from './components/Home'; 4import Logout from './components/Logout'; 5import Login from './components/Login'; 6import CreateConcept from './components/CreateConcept'; 7import Header from './components/Header'; 8import { useState } from 'react'; 9 10function App() { 11 const [isAuth, setIsAuth] = false; 12 13 return ( 14 <Router> 15 <Header isAuth={isAuth}/> 16 <Routes> 17 <Route path="/" element={<Home />}></Route> 18 <Route path="/createconcept" element={<CreateConcept />}></Route> 19 <Route path="/login" element={<Login setIsAuth={setIsAuth}/>}></Route> 20 <Route path="/logout" element={<Logout setIsAuth={setIsAuth}/>}></Route> 21 </Routes> 22 </Router> 23 ); 24} 25 26export default App; 27
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
isAuthをTrueにする箇所(ログイン処理)にノータッチでもこの状況が発生します。
もちろんconsole.logではtrueになりますが、判定式だけが機能していないです。
補足
特になし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/20 12:31