修改React组件状态内的数组

时间:2018-05-05 12:25:06

标签: arrays reactjs react-component

我在React Component的状态中有一个数组。我想使用setState更新数组的特定(在我的情况下,最顶层)元素。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

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

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>
        )
    }
}

答案 1 :(得分:0)

你可以这样做

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

并且如果您想使用第三方lib尝试使用此lib,我使用了一些此功能并获得了出色的结果。

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