我想更新并重新呈现钩子状态更新时的循环测试条件。在我更新状态钩子后,状态被重新呈现,但我想循环也被重新呈现。我做了一个表单。表单的长度取决于我在输入时输入的数字。
下面是我的尝试:
const [formLength, setFormLength] = useState(0);
let eachForm = () => {
for (let x = 0; x < formLength; x++) {
return <div>{x+1} inpute</div>;
}
};
useEffect(() => {
eachForm();
}, [formLength]);
{formLength <= 0 ? (<>Zeroo</>) : (<><eachForm /></>)}
2条答案
按热度按时间carvr3hs1#
当状态改变时,你的组件将被重新渲染,因此不需要useEffect。
azpvetkf2#
这里不需要
useEffect
钩子,它不会为您做任何事情。您可以直接从formLength
状态呈现JSX。eachForm
也不是有效的React组件,所以它不能像<eachForm />
那样使用,for-loop
也会在第一次迭代时返回,并且不会像我猜想的那样返回div
元素的数组。示例: