【发布时间】:2022-12-10 19:10:18
【问题描述】:
我需要在反应中有条件地显示和隐藏元素。我知道我们可以通过为每个元素创建布尔值来有条件地渲染,并且通过操纵特定的布尔状态变量我们可以有条件地显示和隐藏元素。是否有任何方法可以通过不为 useState 中的每个元素设置布尔变量来有条件地显示和隐藏元素?
这是代码。有什么方法可以通过不在状态中创建变量来有条件地显示和隐藏
const [state, setState] = React.useState({
ele0: true,
ele1: true,
ele2: true,
});
let arr = [1, 2, 3];
const handleOnChange = (index) => {
setState({ ...state, [`ele${index}`]: !state[`ele${index}`] });
};
return (
<div className="App">
{arr.map((ele, idx) => (
<div key={idx}>
{state[`ele${idx}`] && <h1>{`element${idx}`}</h1> }
<button
onClick={() => handleOnChange(idx)}
>{`element ${idx} button`}</button>
</div>
))}
</div>
)
【问题讨论】:
-
你是说没有这个
const [state, setState]?
标签: javascript reactjs react-hooks state render