我习惯了在 React 中对组件进行分类,但我正在尝试学习 React hooks。我知道在类组件中,有render()方法。每当重新呈现类组件时都会调用此方法。然而,对于有状态的功能组件(react hooks)来说,没有这样的render()方法。整个函数是否在每次重新渲染时运行?如果是这样,如果运行该函数的每一行代码,状态是否会重置回默认状态值?这是一个示例片段 \xe2\x80\x94 例如,如果当我调用 setAnimal 时该组件被重新渲染,那么重新渲染不会使动物重置回“狗”吗?
const SearchParams = () => {\n const [location, setLocation] = useState("Seattle, WA");\n const [animal, setAnimal] = useState("dog");\n\n return (\n <div className="search-params">\n <form>\n <label htmlFor="location">\n Location\n <input\n id="location"\n value={location}\n placeholder="Location"\n onChange={(e) => setLocation(e.target.value)}\n />\n </label>\n <label htmlFor="animal">\n Animal\n <select\n id="animal"\n value={animal}\n onChange={(e) => setAnimal(e.target.value)}\n onBlur={(e) => setAnimal(e.target.value)}\n >\n <option>All</option>\n {ANIMALS.map((animal) => (\n <option value={animal}>{animal}</option>\n ))}\n </select>\n </label>\n <button>Submit</button>\n </form>\n </div>\n );\n};Run Code Online (Sandbox Code Playgroud)\r\n我希望图表div 的高度能够一直延伸到其父容器 ( graph-container ) 的末尾,但不会超出它。我尝试将图形的高度设置为 100% 并继承,但它们都会导致它延伸超过其父容器的底部边缘(我不想使用溢出:隐藏)。有没有办法在图形上设置高度属性,以便它自动将其高度设置为正确的值?
当前代码:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-size: 20px;
}
.wrapper {
height: 100vh;
width: 100vw;
display: flex;
justify-content: center;
}
.graph-container {
border: 3px solid black;
height: 60vh;
width: 70vw;
margin-top: 10vh;
}
.graph {
height: 100%;
width: 100%;
border: 3px solid red;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="style.css" …Run Code Online (Sandbox Code Playgroud)