MOBX观察代理对象

问题描述 投票:-1回答:1

MOBX未反应通过代理对象来完成数据的变化。

我使用的是代理对象装饰对象模型,然后存储在我的店里MOBX代理对象要显示在我的阵营UI。

DataModel.js

import { extendObservable } from 'mobx'

export default function DataModel() {
   extendObservable(this, {
      prop1: 'foo',
      prop2: 'bar',
   })
}

decorateDataModel.js

export default function decorateDataModel(model) {
   return new Proxy(model, {
      get: (target, property) => {
         // do some things ...
         return model[property];
      set: (target, property, value) => {
         // do some things ...
      }
   });
}

MyStore.js

import { observable } from 'mobx';
import DataModel from './path/to/DataModel';
import decorateDataModel from './path/to/decorateDataModel';

class Store {
   @observable data = decorateDataModel(new DataModel());
}
const MyStore = new Store();
export default myStore;

然后,我有一个观察者阵营组件手表“数据”,并使得它在表中。如果我不装饰它,它的行为如你所愿。如果我使用控制台来改变某些领域,MOBX反应和新的数据呈现。然而,当我与代理装饰它,它不会对变化做出反应。使用控制台来检查数据,表明它没有改变,但MOBX没有对变化做出反应。

有没有其他人有这个问题?我怎样才能得到MOBX对我的装饰对象的变化作出反应?

javascript reactjs mobx
1个回答
0
投票
import { extendObservable } from 'mobx'

const DataModel = () =>{
   extendObservable(this, {
      prop1: 'foo',
      prop2: 'bar',
   })  //<--- Close your parenthesis?
};
© www.soinside.com 2019 - 2024. All rights reserved.