```jsx // useState钩子函数返回一个包含当前状态和更新状态的函数的数组 import React, { useState } from 'react'; function Contact() { const password = 'swordfish'; const [authorized, setAuthorized] = useState(false); function handleSubmit(e) { const enteredPassword = e.target.querySelector( 'input[type="password"]').value;//获取 input标签且 type 等于 password 的标签 const auth = enteredPassword == password;//当用户输入的值等于变量 password setAuthorized(auth)// 将 auth 作为参数传递给 setAuthorized,根据 useState 的状态变化 } //制作登录表单变量 const login = ( <form action='#' onSubmit={handleSubmit}> <input type="password" placeholder="password"/> <input type="submit" /> </form> ); // 将原来 return 中的列表移到了 contactinfo 中,隐藏了联系信息,通过保存在变量中就可以切换状态了useState const contactInfo = ( <ul> <li> [email protected] </li> <li> 555.555.5555 </li> </ul> ); return ( <div id="authorization"> <h1> {authorized===true ? 'Contact' : 'Enter the password'} </h1> {authorized===true ? contactInfo : login} </div> ); } //根据 useState 的状态变化,展示输入密码页面还是展示联系方式页面。函数和变量不同,不需要写大括号 export default Contact; ``` [Authorization Form](https://www.codecademy.com/journeys/full-stack-engineer/paths/fscj-22-front-end-development/tracks/fscj-22-react-part-i/modules/wdcp-22-react-components-860d3f06-e0ad-456f-b7fa-d5aef4dd565d/projects/authorization-form)