MobX добавление объектов в наблюдаемый массив - PullRequest
0 голосов
/ 12 декабря 2018

Объекты 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"

Таким образом, здесь в основном 2 проблемы, одна из которых заключается в том, что второе нажатие переопределяет первую, но более того, я хотел бы, чтобы эти данные были такими:

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

TLDR; Как бы мне этого добиться? помещение объекта в наблюдаемый массив таким способом, который может быть повторен на ...

нарезка массива никак не влияет наВывод.

Как всегда ценится любое направление, поэтому заранее спасибо!

1 Ответ

0 голосов
/ 02 февраля 2019

Я считаю, что проблема заключается в том, что вы наблюдаете только за переменной, а не отображаете весь массив!

@observable selectedGlobalFilters = [];

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

.. или

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

.. если симптомы сохраняются: -)

...