为了账号安全,请及时绑定邮箱和手机立即绑定

一个mobx中computed属性的问题

一个mobx中computed属性的问题

一只名叫tom的猫 2018-12-11 11:22:51
对于单个对象,我可以使用computed通过计算获得一些属性,比如@observable good = {    number: 2,    price: 3}@computed get totalPrice() {    return this.good.number * this.good.price;}对于数组,比如@observable goodsList = [{    number: 2,    price: 3},{    number: 2,    price: 3}]这种情况我如何通过computed获得数组某个元素的计算属性呢,还是只能在改变number的函数中手动去更改,但是我数组的对象中并没有一个totalPrice的属性,每次把单个good push到goodsList中去还要给good添加一个totalPrice属性岂不是很麻烦
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

把good弄成一个单独的model文件


export default class Good{

  @observable number;

  @observable price;

  constructor(number, price) {

    this.number = number;

    this.price = price;

  }

  

  @computed

  get totalPrice() {

    return this.number * this.price

  }   


}

然后在goodList文件中


  @action

  addGood(...args) {

    this.todos.push(new Good(...args));

  }

这样就实现了自动计算, 访问的时候类似 this.props.goodList[0].totalPrice


参考这个TODO LIST


查看完整回答
反对 回复 2019-01-11
  • 1 回答
  • 0 关注
  • 1123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信