0

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

4

2 回答 2

1

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

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>
        )
    }
}
于 2018-05-05T12:29:36.520 回答
0

你可以这样做

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

如果你想使用第三方库试试这个库,我使用了这个库的一些功能并得到了很好的结果。

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

于 2018-05-05T12:33:33.460 回答