Как оценить наблюдаемый или вычисляемый массив в реагирующем мобе, используя console.log

У меня есть вычисляемый массив, который мне удается перебрать без проблем, вот так:

<select>
  {releaseDefault.map(ref =>
    <option key={ref.id}>{ref.name}</option>
  )};
</select>

Я пытаюсь оценить этот массив в методе рендеринга, используя autorun

  autorun(() => {
      console.log(releaseDefault); //value is a computed array.
    });

результат:

(4) [{…}, Proxy, Proxy, Proxy]
0 Proxy[[Handler]]:Object[[Target]]:Object[[IsRevoked]]:false
1 Proxy[[Handler]]:Object[[Target]]:Object[[IsRevoked]]:false
2 Proxy[[Handler]]:Object[[Target]]:Object[[IsRevoked]]:false
3 Proxy[[Handler]]:Object[[Target]]:Object[[IsRevoked]]:false

Вопрос: как получить доступ к фактическому массиву, а не к приведенному выше результату? Имея ту же проблему для фактического наблюдаемого.

2 ответа

Мне удалось оценить наблюдаемый массив, оценив класс, содержащий этот массив, например:

import { Map as iMap } from "immutable";
render(){

let rc = iMap(referenceClass)
console.log("Values of observables in class 'referenceClass' ",rc.toJS());

return (
...

Не забудьте установить неизменяемый:

npm i immutable 

Дайте мне знать, если у вас есть лучший способ...

mobx 6.2.0 поставляется с собственным toJS() так что неизменяемость не нужна.

Я не уверен насчет предыдущих версий

import { toJS } from 'mobx' делает трюк

Другие вопросы по тегам