React その他諸々学習中です。
下記ログインページに背景画像を設定したいです。
returnの一番初めのdivタグに設定してみたのですが、エラーとなりました。
このような場合、どこに設定できますがアドバイスいただけますと幸いです。
エラー内容
ーConsider adding an error boundary to your tree to customize error handling behavior.
ーThe above error occurred in the <div> component:
at div at Home (webpack:///./src/pages/Home.js?:22:83) at component....
React
1import React, { useState, useEffect } from 'react'; 2 3export default function Home(props) { 4 const [token, setToken] = useState(''); //authenticated 5 6 const [user, setUser] = useState({ 7 username: '', 8 password: '' 9 }); 10 const [loggedInUser, setLoggedInUser] = useState(''); 11 const [toggle, setToggle] = useState(true); 12 const handleChange = e => { 13 setUser({ ...user, [e.target.id]: e.target.value }); 14 }; 15 const handleLogin = async e => { 16 e.preventDefault(); 17 try { 18 const response = await fetch('/login', { 19 method: 'POST', 20 headers: { 21 'Content-Type': 'application/json' 22 }, 23 body: JSON.stringify(user) 24 }); 25 const data = await response.json(); 26 setToken(data.token); 27 setLoggedInUser(data.user.username); 28 window.localStorage.setItem('token', data.token); 29 window.localStorage.setItem('loggedInUser', data.user.username); 30 } catch (err) { 31 console.error(err); 32 } 33 }; 34 35 const handleRegister = async e => { 36 e.preventDefault(); 37 try { 38 const response = await fetch('/register', { 39 method: 'POST', 40 headers: { 41 'Content-Type': 'application/json' 42 }, 43 body: JSON.stringify(user) 44 }); 45 const data = await response.json(); 46 setToken(data.token); 47 setLoggedInUser(data.user.username); 48 window.localStorage.setItem('token', data.token); 49 window.localStorage.setItem('loggedInUser', data.user.username); 50 } catch (err) { 51 console.error(err); 52 } 53 }; 54 useEffect(() => { 55 if (window.localStorage.getItem('token')) { 56 setToken(window.localStorage.getItem('token')); 57 setLoggedInUser(window.localStorage.getItem('loggedInUser')); 58 } 59 }, []); 60 61 return ( 62 <div style="background: url(../public/img/mandala_1.png)"> 63 {!token ? ( 64 <> 65 <button onClick={() => setToggle(!toggle)}> 66 {toggle ? 'Show Register' : 'Show Login'} 67 </button> 68 {toggle ? ( 69 <form onSubmit={handleLogin}> 70 <input 71 type="text" 72 id="username" 73 value={user.username} 74 onChange={handleChange} 75 /> 76 <input 77 type="password" 78 id="password" 79 value={user.password} 80 onChange={handleChange} 81 /> 82 83 <input type="submit" value="Login" /> 84 </form> 85 ) : ( 86 <form onSubmit={handleRegister}> 87 <input 88 type="text" 89 id="username" 90 value={user.username} 91 onChange={handleChange} 92 /> 93 <input 94 type="password" 95 id="password" 96 value={user.password} 97 onChange={handleChange} 98 /> 99 <input type="submit" value="Register" /> 100 </form> 101 )} 102 </> 103 ) : ( 104 <> 105 <div>Hello from some {loggedInUser}</div> 106 </> 107 )} 108 </div> 109 ); 110} 111 112
回答1件
あなたの回答
tips
プレビュー