首页 > 解决方案 > 反应模块的最佳方式

问题描述

所以基本上我正在用 MobX 开发这个应用程序(我是新手),我有一些让我绊倒的东西。

我试着让它像 OOP 一样(不知道它是否好),我有一些类似的东西:

Store
  |- Filters (class)
        |- Filter (class)
  |- VisualData (class) 
        |- Property (class)
  |- Data (class)

现在,我需要根据 Data 和 Filters 的导出数据一起导出新的 VisualData(内部进行一些计算)。

意思是,我正在从服务器获取数据并将其存储在“数据”中。然后我设置过滤器和视觉数据。

从那里开始,每次我更改过滤器时,我都需要更改 VisualData。

我想出的最好的是:

  updateVisualDataByFilters = reaction(
    () => toJS(this.filters),
    (filters) => {
      this.VisualData.setData(
        this.Data.getFilteredData(
          this.filters.getDataFilters,
        ),
      );
    },
  )

我必须使用“toJS”,否则它没有注册 this.filters 的更改——即使它确实注册了一个计算函数(我也不明白)。

有没有更好的方法来做到这一点?

标签: javascriptmobx

解决方案


推荐阅读