【问题标题】:React Native | JS Create Object反应原生 | JS 创建对象
【发布时间】:2020-08-04 13:11:49
【问题描述】:

我在 React native 中使用选择器模块。我必须为此创建一个数据集。用我的手写数据集是可以的,但是当我用 for 打印它时,我得到了以下错误。解决办法是什么?

//working
const dataset = [
    {
        value: "1",
        label: "1",
    },
    {
        value: "2",
        label: "2",
    },
    {
        value: "3",
        label: "3",
    }
]

//not working
for (let i = 0; i < 3; i++) {
    this.setState({yearList:this.state.yearList.push({value:`${i}`,label:`${i}`})})
}

【问题讨论】:

    标签: arrays react-native


    【解决方案1】:

    React 文档说:

    将 this.state 视为不可变的。

    您的推送将直接改变状态,这可能会导致容易出错的代码,即使您之后再次“重置”状态也是如此。例如,它可能导致某些生命周期方法(如 componentDidUpdate)不会触发。

    在以后的 React 版本中推荐的方法是在修改状态时使用更新器函数来防止竞争条件:

    this.setState({
      arrayvar: [...this.state.arrayvar, newelement]
    })
    

    【讨论】:

    • gardash 在土耳其语中的意思是“兄弟”:D
    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多