Как оценить наблюдаемый или вычисляемый массив в реагирующем мобе, используя 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'
делает трюк