【问题标题】:Destructuring and clone object / One line?解构和克隆对象/一行?
【发布时间】:2020-10-19 19:07:36
【问题描述】:

我正在使用react.js,我想从状态中获取一个数组,但我需要克隆它并将其保存到const。我可以用两行代码来完成;有没有办法在一行代码中做到这一点?

例子:

const { data } = this.state
const newData = [...data]

仅供参考,我正在使用 eslint,如果我尝试这样做,使用 "parser": "babel-eslint" 配置和 VSC 会向我显示警告:

const data = [...this.state.data]

警告信息:Must use destructuring state assignments - lint react / destructuring-assignment

我不想删除/自定义 eslint 的规则……但我不想对代码进行不必要的扩展。

有什么建议吗?

【问题讨论】:

    标签: javascript reactjs ecmascript-6 visual-studio-code eslint


    【解决方案1】:

    以下是如何通过在一行中解构所有内容来创建this.state.data 的数组切片:

    const { data: [...newData] } = this.state
    

    注意,这不是一个 deep 克隆,如果你期待的话。它只是一个引用原始 Array 项的新 Array。

    请注意,我认为您的 eslint 规则对于使用解构的 require 来说是疯狂的。这不是总是最好的解决方案。

    【讨论】:

    • 嗯,是的......我也认为“太多”需要解构......我会检查不把这条规则作为警告的方式。感谢您的提醒!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2015-04-25
    • 1970-01-01
    相关资源
    最近更新 更多