我无法将一个对象推入一个可观察的数组中,并且无法对其进行迭代。
起点(所有数据均通过控制台的日志):
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"
所以这里基本上有2个问题,一个是第二次推送优先于第一次推送,但更多,所以我想拥有这样的数据:
[{…}]
0:
status: "rejected"
1:
status: "done"
TLDR; 我将如何实现这一目标? 将对象以可迭代的方式推入可观察的数组...
切片数组对输出没有不同的影响。
一如既往地感谢所有方向,所以在此先感谢您!
答案 0 :(得分:0)
我相信这里的问题是,您仅观察一个变量,而不是映射整个数组!
@observable selectedGlobalFilters = [];
if (!this.selectedGlobalFilters.length)
this.selectedGlobalFilters.push(filter.options01)
..或
const gFilter = toJS(this.selectedGlobalFilters)
this.selectedGlobalFilters = gFilter.push(filter.options01)
..如果症状持续:-)