在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡安全  HTML/ mobx一個store設(shè)計的問題

mobx一個store設(shè)計的問題

看了一些例子我設(shè)計了如下store
一個頁面的總store,結(jié)構(gòu)如下

//    頁面總的store
class store {
    @observable list: []
    @action async getData(){
        const data = await axios.get('/getgoods');
        this.list = data.map(item => new GoodsModel(this, item));
    }
}
//    每個商品的model
class GoodsModel {
    store;
    @observable price;
    @observable goodsName;
    @observable goodsImg;
    constructor(store, json){
        this.store = store;
        this.goodsName = json.goods_name;
        this.goodsImg = json.img_url;
        this.price = json.price;
    }
}

每個單個商品的model只保存了屬于自己的信息,但是有時需要用到整個頁面store中的數(shù)據(jù),所有我在每個model中有一個store屬性,但是這樣設(shè)計在JSON.stringify()中就會報循環(huán)引用了,因為store中的list有model,model中又有store,這樣相互依賴的問題如何解決呢,請問mobx還有其他的設(shè)計思路嗎

回答
編輯回答
默念

你這樣的設(shè)計是沒問題的,問題在:

  1. 為什么要JSON.stringify()? 你已經(jīng)構(gòu)建出了JS對象,頁面渲染時直接通過訪問對象屬性即可,應該不需要JSON.stringify()。
  2. 如果真的要轉(zhuǎn)換成json字符串,也應該先做預處理,轉(zhuǎn)換除了store以外的其他屬性:price、goodsName、goodsImg。
2017年9月30日 11:37
編輯回答
寫榮

我感覺modal和頁面兩個store就夠了,公用的部分不一定要在store里面處理,在代碼里面處理

2018年7月17日 21:31