问答详情
源自:2-3 实现列表项的删除功能

const list = [...this.state.list] 是否可以换个更简单的写法

const list = [...this.state.list] 直接写成 const list = this.state.list ,控制台输出是没问题的,是不是用后面这种写法更好一些?不知道展开数组是否还有必要?

提问者:十亿燚 2018-09-30 18:19

个回答

  • ZAnsder
    2018-11-30 13:27:47
    已采纳

    这里感觉是简单的赋值操作,用展开运算符意义不大,为了秀es6而使用?

  • aSuncat
    2019-05-19 12:28:55

    被你选中的最佳答案震惊了,竟然还有人说秀es6的,这样竟然也能成为最佳答案。。。输出没问题,但是react操作思路是拷贝数据进行操作,[...this.state.list]拷贝了数组,而this.state.list拷贝了指针。这里的结果看似一样,但是敲代码的思路完全不一样了,只能说你要考虑代码的可扩展性,如果你这样改,后续肯定会为list和this.state.list头疼的。

  • ZAnsder
    2018-12-04 11:46:39

    这里用展开运算符的作用是为了浅拷贝,如果后者这种赋值对象会指向同一个引用,可能会出现老师所说的问题(不建议直接修改this.state),但是浅拷贝只解决一层对象的问题,更深层的对象还是会引用关系,所以用不用展开运算符都没达到老师所要解决的问题吧?

  • 纯情浪子
    2018-09-30 20:21:12

    es6

  • 纯情浪子
    2018-09-30 20:20:16

    那你添加数据的时候就要用push方法了,es是趋势,提前了解一下没坏处的