从反应组件的数组类型状态属性中弹出的正确方法是什么?

时间:2015-09-21 05:04:34

标签: javascript reactjs

让我们说我有一个反应组件,如:

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也有一个很好的单行解决方案。

1 个答案:

答案 0 :(得分:6)

使用Array.prototype.slice

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