Mobx возвращает ObservableObjectAdministration вместо моего объекта

Я новичок в мобксе. Мне было интересно, почему я получаю ObservableObjectAdministration, когда я вызываю вычисляемую функцию getServerUrls() вместо объекта.

введите описание изображения здесь

Ниже мой магазин.

import { observable, computed } from 'mobx';
import { ServerNames } from 'master-server-urls';

class ServerNamesStores {

  @observable ServerNameUrls = {};
  @computed get getServerUrls() {
    console.log('@computed get getServerUrls()',  this.ServerNameUrls);
    return this.ServerNameUrls;
  }

  constructor() {
    const overrideServer = {
      "medicontentServer": "https://mediaserver.example.com"
    }
    const newServerNames = Object.assign({}, ServerNames, overrideServer);
    this.ServerNameUrls = newServerNames;
  }

}

const serverNamesStores = new ServerNamesStores();

export default serverNamesStores;
export { ServerNamesStores };

и ниже мой App.js

import React, { Component } from 'react';
import { observer } from 'mobx-react';
import ServerNamesStores from './Stores/ServerNamesStores'
import logo from './logo.svg';
import './App.scss';

@observer
class App extends Component {

  constructor(props) {
    super(props)
    const { ServerNameUrls, getServerUrls } = ServerNamesStores
    console.log('ServerNameUrls', ServerNameUrls);
    console.log('1. getServerUrls', getServerUrls);
    console.log('2. getServerUrls', JSON.stringify(getServerUrls));
  }

  render() {
    return (
      <div className="App">
        <div className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h2>Welcome to React</h2>
        </div>
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
      </div>
    );
  }
}

export default App;

Доступ к собственности работает отлично. Приведенный ниже код отлично работает и покажет значение свойства для ServerNameUrls.webServer.

const { ServerNameUrls, getServerUrls } = ServerNamesStores
console.log('ServerNameUrls', ServerNameUrls.webServer)

person devwannabe    schedule 02.04.2017    source источник
comment
Спасибо, Пьер, за редактирование. :)   -  person devwannabe    schedule 04.04.2017


Ответы (1)


Я исправил это, добавив код ниже :)

import { toJS } from 'mobx';

а потом об использовании

console.log('getServerUrls output', toJS(getServerUrls));

Дополнительная информация на веб-сайте MobX

person devwannabe    schedule 02.04.2017