关于vue渲染的问题,如何解决?

img


如图,outOrderDetailList是一个用来渲染表格的数组,我用这个数组的matCode搜索出一个新的属性statsQuantity并把它加到outOrderDetailList里面显示出来,这时候表格已经渲染完成了,新的statsQuantity虽然已经被赋值到outOrderDetailList里面了,但是却无法显示出来,请教一下大家,这种情况应该怎么做
现有库存就是statsQuantity

img

img

使用this.$set呢 或者this.$nexttick

以下内容部分参考ChatGPT模型:


你可以在computed属性中计算出新的outOrderDetailList,并在模板中渲染它。这样可以确保新的statsQuantity在渲染表格时已经被赋值并且可以显示出来。

例如:

computed: {
  updatedOrderDetailList () {
    return this.outOrderDetailList.map(item => {
      const statsQuantity = this.getStatsQuantity(item.matCode)
      return {
        ...item,
        statsQuantity
      }
    })
  }
},
methods: {
  getStatsQuantity (matCode) {
    // 根据matCode获取statsQuantity
    // ...
  }
}

然后在模板中使用updatedOrderDetailList来渲染表格:

<table>
  <thead>
    <tr>
      <th>物料编码</th>
      <th>数量</th>
      <th>现有库存</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="item in updatedOrderDetailList" :key="item.matCode">
      <td>{{ item.matCode }}</td>
      <td>{{ item.quantity }}</td>
      <td>{{ item.statsQuantity }}</td>
    </tr>
  </tbody>
</table>

如果我的建议对您有帮助、请点击采纳、祝您生活愉快

这个问题很好,我得到了一个答案,你可以将给定的数组对象渲染到outOrderDetailList里面,但需要将该数组赋值给一个新的属性statsQuantity,这样就能在显示图像时渲染。