从react组件'数组类型状态属性弹出的正确方式

Proper way to pop from a react component's array-type state attribute?

本文关键字:属性 方式 状态 类型 组件 react 数组      更新时间:2023-09-26

假设我有一个react组件:

var MyComponent = React.createClass({
    getInitialState: function() {
        return {
            myStack: []
        };
    },
    ...
    pop: function(a) {
        // any concise , elegant way to pop from array type state?
    }
}

也许我可以直接写

pop: function() {
    var clone = _.clone(this.state.myStack);
    clone.pop();
    this.setState({myStack: clone});
}

但是它看起来很丑…我知道它是有效的,但是当我写这些代码时,仅仅看着代码本身就变得很烦人。

是否有很好的方式弹出从数组类型反应组件状态?

我像

那样实现push()
push: function(a) {
    this.setState({myStack: this.state.myStack.concat([a])});
}

在一行中。

我相信pop也有一个很好的一行解决方案。

使用Array.prototype.slice:

pop: function() {
  this.setState({
    myStack: this.state.myStack.slice(0, -1)
  });
}