2017-04-02 1 views
3

Je suis nouveau sur mobx. Je me demandais pourquoi je reçois ObservableObjectAdministration lorsque j'appelle la fonction getServerUrls() calculée à la place de l'objet.Mobx retournant ObservableObjectAdministration à la place de mon objet

enter image description here

Ci-dessous est mon magasin.

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 }; 

et ci-dessous est mon 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; 

Accès à la propriété fonctionne très bien. Le code ci-dessous fonctionne bien et affiche la valeur de la propriété pour ServerNameUrls.webServer

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

Merci Pierre de l'avoir édité. :) – devwannabe

Répondre

3

Je l'ai fixé en ajoutant le code ci-dessous :)

import { toJS } from 'mobx'; 

et sur l'utilisation

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

More info on MobX website