【问题标题】:How can set array useState in loop for add more item in default array?如何在循环中设置数组 useState 以在默认数组中添加更多项目?
【发布时间】:2020-01-30 08:44:36
【问题描述】:

我有一个包含 10 个项目的数组 首先,我在 useState 中添加了 5 个项目

const [dataList, setDataList] = useState([])
useEffect(() => {
  const newArr = []
  for (var i = 0; i < 5 && i < data.length; i++) {
       newArr.push(data[i])
      }
      setDataList(newArr)
    }, [])

然后,当我添加了 5 个项目时,我得到了意想不到的结果

onPress = () => {
    const newArr2 = []
    for (var i = 5; i < 10 && i < data.length; i++) {
        newArr2.push(data[i])
    }
    setDataList([...dataList, newArr2])
    console.log("dataList", dataList)
}

https://i.stack.imgur.com/lB0JD.png

如何将剩下的 5 个项目推入 useState 数组? 对不起我的英语不好。

【问题讨论】:

    标签: arrays reactjs react-native state react-hooks


    【解决方案1】:

    展开语法的替代方案可能是:

    setDataList(dataList.concat(newArr2))
    

    【讨论】:

      【解决方案2】:

      你正在传播你当前的数组,而不是新的数组:

      setDataList([...dataList, ...newArr2])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-04
        • 1970-01-01
        • 2021-11-29
        • 2021-06-19
        • 1970-01-01
        相关资源
        最近更新 更多