2

MobX 对象到可观察数组

我无法将对象推入可观察数组并使其成为我可以迭代的东西。

起点(所有数据都通过控制台的日志):

if (!self.selectedGlobalFilters) self.selectedGlobalFilters = observable([])

并接受一个对象filter.options01作为:

Proxy {Symbol(mobx administration): ObservableObjectAdministration$$1}
  [[Handler]]: Object
    [[Target]]: Object
      key: "status"
      value: "rejected"

...然后尝试推动

self.selectedGlobalFilters.push(filter.options01)

给我:

[Proxy]
  0: Proxy
    [[Handler]]: Object
      [[Target]]: Object
        key: "status"
        value: "rejected"

然后尝试将另一个对象filter.options02 推送为:

Proxy {Symbol(mobx administration): ObservableObjectAdministration$$1}
  [[Handler]]: Object
    [[Target]]: Object
      key: "status"
      value: "done"


self.selectedGlobalFilters.push(filter.options02)

给我:

[Proxy]
  0: Proxy
    [[Handler]]: Object
      [[Target]]: Object
        key: "status"
        value: "done"

所以基本上这里有两个问题,一个是第二个推送覆盖了第一个,但更多 - 所以我希望这样的数据:

[{…}]
  0: 
    status: "rejected"
  1:
    status: "done"

TLDR; 我将如何实现这一目标? 以可以迭代的方式将对象推入可观察数组...

切片数组对输出没有不同的影响。

一如既往地感谢所有方向,所以提前致谢!

4

1 回答 1

0

我相信这里的问题是你只观察一个变量而不是映射整个数组!

@observable selectedGlobalFilters = [];

if (!this.selectedGlobalFilters.length) 
  this.selectedGlobalFilters.push(filter.options01)

..或者

const gFilter = toJS(this.selectedGlobalFilters)
  this.selectedGlobalFilters = gFilter.push(filter.options01)

..如果症状持续存在:-)

于 2019-02-02T10:04:36.453 回答