猿问

一个mobx中computed属性的问题

对于单个对象,我可以使用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属性岂不是很麻烦


一只名叫tom的猫
浏览 1124回答 1
1回答

子衿沉夜

把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
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答