创建 JSON.parse 方法以重用 VUE

Create JSON.parse method to reuse VUE

所以我正在遍历数组(使用 Vue)。在这个数组中,它们是带有字符串的对象。

notifications: [
  0: {
    idType: 1
    type: "delivered"
    user: 12
    visibility: true
    seller: 15
    product: "phone"
    additionalData: "{"type":"iphone","idType":5,"number":"2"}"
  }
  1: {
    idType: 2
    type: "meeting"
    user: 12
    visibility: null
    seller: 12
    company: "hotell"
    additionalData: "{"location":"office","idType":7,"number":"8"}"
  }
  2: {
    idType: 1
    type: "invoiced"
    user: 15
    visibility: null
    seller: 11
    value: 150000
    additionalData: "{"payment":"credit","idType":10,"number":"1"}"
  }
]

所以我需要解析不同附加数据中的所有信息。当我为模板中的每一个都这样做时,它变得有点混乱,所以我想为它创建一个方法。

我试过这样的事情:

parseText(type: string) {
    return JSON.parse(this.note.additionalData).type
},

这显然行不通,但不知道如何让它发挥作用。 (作为 prop 向父组件发送 note,并且还在父组件中执行 v-for)

我不确定为什么 method 对你不起作用,但你也可以创建一个组件,将对象作为 prop 接收,并在其中计算 属性会自动为你解析。

<Notification
  v-for="notification in notifications
  :key="notification.id"
  :notification="notification"
/>
props: {
  notification: {
    required: true,
    type: Object,
  }
},

computed() {
  additionalDataObj() {
    return JSON.parse(this.notification.additionalData)
  }
}