代码之家  ›  专栏  ›  技术社区  ›  Jithin Ks

在React组件的状态内修改数组[重复]

  •  0
  • Jithin Ks  · 技术社区  · 7 年前

    我在React组件的状态中有一个数组。我想使用setState更新数组的一个特定元素(在我的例子中是最上面的元素)。我该怎么做?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Limbo    7 年前

    如果你需要解释,我会更新我的答案:)

    class MyComponent extens React.Component {
        state = {
            myAwesomeArray: [1, 2, 3]
        }
    
        changeArray() {
            var myAwesomeArray = [...this.state.myAwesomeArray]
            myAwesomeArray[0] = -1
            this.setState({ myAwesomeArray })
        }
    
        render() {
            return (
                <div>
                    {this.state.myAwesomeArray.map(el => <p key={p}>{el}</p>)}
                    <button onClick={this.changeArray}>Change my array!</button>
                </div>
            )
        }
    }
    
        2
  •  0
  •   Limbo    7 年前

    你可以这样做

     const rawRequestData = this.state.data;
        rawRequestData[index].key = "Custom key";
        this.setState({ data: rawRequestData });
    

    如果您想使用第三方lib,请尝试使用此lib,我使用了其中的一些函数,并获得了很好的结果。

    https://github.com/kolodny/immutability-helper