【问题标题】:Javascript create an Object based on specific Class PropertiesJavascript 基于特定的类属性创建对象
【发布时间】:2018-05-06 15:17:45
【问题描述】:

我想用当前类的现有属性以一种简单的方式实例化一个对象。

不知怎么的,我还是在网上找不到答案。

这就是我所期望的。如果有的话,请给我一个简单的答案。

class user {
    @observable username = '';
    @observable email = '';
    @observable password = '';
    @observable gender = '';

    @observable errors = {};

    @action
    submitRegister() {
      const userData = {
        username,
        email,
        password,
        gender
        }

        Axios.post('/api/users', userData).then(this.recieveMessage,this.recieveErrors);
      }
}

如果我对每个属性都执行以下操作,它会起作用,但我想答案会更短。至少我希望如此。

const userData = { [this.username]: this.username, ...}

【问题讨论】:

  • 我认为您正在寻找{username: this.username, …},而不是{[this.username]: this.username, …}
  • @Bergi 都很好,但它们太长了。我想一定有更快的方法
  • 不,我是说第二个实际上不起作用。

标签: javascript reactjs object properties createobject


【解决方案1】:

根据您的简短回答希望和您的尝试:

const userData = { [this.username]: this.username, ...}

改为尝试传播this.username,如下所示:

const userData = { ...this.username }

也可以尝试传播this,像这样:

const userData = { ...this }

【讨论】:

  • const userData = { ...this.username, ...this.password, ...this.email, ... this.gender } 不起作用....可悲的是跨度>
  • 也尝试传播this,像这样:const userData = { ...this }
  • 但是我得到了对象中的每一个类属性......我只是想拥有特定的属性:D 但是好吧,我猜这并不容易
  • 您要么必须传播每个特定的类属性,要么传播所有这些属性。如果您希望传播所有这些内容,请考虑一个仅包含您想要传播的内容的子类。
猜你喜欢
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多