【问题标题】:How to create dynamic state in for loop?如何在for循环中创建动态状态?
【发布时间】:2021-05-06 20:01:55
【问题描述】:

我有一系列颜色,每种颜色都有一个画廊。我想为这些画廊创建和管理状态,这样我就可以轻松地为画廊添加/删除图像。

我有这样的代码

var imgArr = new Array(colors.length)
for (var i = 0; i < colors.length; i++) {
    imgArr[i] = colors[i].imgs
    const [gallery[i], setGallery[i]] = React.useState()
    setGallery[i](imgArr[i])
}

但是const [gallery[i], setGallery[i]] = React.useState() 不起作用。

如何解决这个问题?

【问题讨论】:

  • 没有of these 帮助?
  • 我需要创建多个状态,而不仅仅是在循环中调用 setState。
  • 我相信几乎每一个重复的问题中的每一个问题都是这样的:不要在循环中设置状态。祝你好运。
  • 我明白了,这对我来说很复杂,但我会尝试使用状态来管理它们。

标签: javascript reactjs jsx


【解决方案1】:

不要在循环中写这个:

const [gallery[i], setGallery[i]] = React.useState()

语法错误。您可以使用这样的画廊状态:

const [galleries, setGalleries] = useState([]);

然后:

setGalleries(colors.map((color) => color.imgs));

沙盒:https://codesandbox.io/s/stupefied-roentgen-xk9zc?file=/src/App.js:547-600。希望这能回答您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2019-06-14
    • 2015-09-10
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    相关资源
    最近更新 更多