【发布时间】:2021-11-25 15:13:57
【问题描述】:
我对反应很陌生,我制作了一个带有几个按钮的程序,当单击另一个按钮时,这些按钮需要一个一个地启用。每当我手动将数组值从 true 更改为 false 时,按钮都会显示,但当我运行链接到另一个按钮的函数时不会显示。
数组和enableObject函数:
var counter = 0;
var disabledArray = [true, true, true, true, true, true, true, true];
function enableObject() {
disabledArray[counter] = false;
counter++
}
启用其他按钮的按钮:
<Button Button variant="outlined" color="primary" type="submit" onClick={enableObject}>Add a new financial object</Button>
需要启用的按钮示例:
<Button Button variant="contained" color="primary" type="submit" onClick={() => setButtonPopup(true)} disabled={disabledArray[0]}>
Object 1
</Button>
我只是不太明白我是否需要制作另一个数组,或者究竟该怎么做才能使它工作。我的意思是,数组不能完全由程序本身编辑,对吧?我只是没有看到任何其他解决方法。
附:我使用的是 Material-UI,所以不要对按钮等感到困惑。
【问题讨论】:
-
嗨!可以提供沙盒吗?
-
你在这里没有使用任何状态,而只是一个普通的布尔数组,如果你想让你的 DOM 得到重新渲染,你需要创建这些布尔数组作为状态,以便 onClick 你改变布尔数组按钮状态和组件将重新渲染
标签: javascript arrays reactjs button