如何使用console.log在React Mobx中评估可观察或计算的数组

时间:2018-11-05 10:07:41

标签: reactjs mobx

我有一个计算数组,可以迭代遍历它,而不会出现诸如此类的问题:

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

我正在尝试使用autorun

在render方法中评估此数组。
  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 个答案:

答案 0 :(得分:0)

我设法通过评估包含该数组的类来评估可观察数组,就像这样:

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 

如果您有更好的方法,请告诉我...

答案 1 :(得分:0)

mobx 6.2.0 自带 toJS(),因此不需要不可变。

我不确定以前的版本

import { toJS } from 'mobx' 可以解决问题