javascript - 从 react 组件的数组类型状态属性中弹出的正确方法?

标签 javascript reactjs

假设我有一个像这样的 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});
}

但它看起来很丑...我知道它可以工作,但是当我编写这些代码时,光看代码本身就很烦人。

有没有什么好的方法可以从数组类型的 React 组件状态中弹出?

我像这样实现了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)
  });
}

关于javascript - 从 react 组件的数组类型状态属性中弹出的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32687713/

相关文章:

javascript - 表排序器不正确

javascript - 为 Google Analytics 添加延迟链接点击

javascript - 如何使用 thunk 操作对 mapDispatchToProps 进行单元测试

javascript - 用传递的结果重构 promise 级联

reactjs - 如何使用柯里化(Currying)在React中创建HoC并同时连接到Redux存储?

javascript - 如何在 react 页面上正确显示带有对象(来自另一个文件)的数组?

javascript - 在 React App 中模拟 ('click' 后 enzyme 安装包装器为空)

javascript - VideoJS currentTime() 总是返回 0

javascript - MobX,以及商店之间的连接

javascript - 基于子节点存在的过滤元素