我开发了多个切换按钮与此代码。但我想添加功能的自动关闭
例如,首先,点击"一"按钮打开,然后点击其他按钮发生自动关闭"一"按钮。
const [Selected, setSelected] = useState({
"a": false,
"b": false,
"c": false,
"d": false,
"e": false,
});
const select = (e) => {
setSelected({
...Selected,
[e.target.value]: !Selected[e.target.value],
});
}
<button onClick={select} className={selected["a"] ? "style selected" : "style"} value="a">a</button>
<button onClick={select} className={selected["b"] ? "style selected" : "style"} value="b">b</button>
<button onClick={select} className={selected["c"] ? "style selected" : "style"} value="c">c</button>
...
这可能是可能的与此代码?请让我知道我应该编码,并建议如何处理或一些更好的方式
2条答案
按热度按时间6l7fqoea1#
在JS中,
undefined
是一个伪值,所以如果selected["a"]
是false
或'undefined,selected["a"] ? "style selected" : "style"
也会以同样的方式求值。因此,初始状态实际上可以是一个空对象,要在单击某个按钮时关闭所有其他按钮,请创建一个新的空状态,只打开该按钮。
lx0bsm1f2#
试试这个