2017-04-02 3 views
3

Ich bin neu bei mobx. Ich habe mich gefragt, warum ich ObservableObjectAdministration bekomme, wenn ich die berechnete getServerUrls() - Funktion anstelle des Objekts aufrufen.Mobx gibt ObservableObjectAdministration anstelle meines Objekts zurück

enter image description here

Unten ist mein Geschäft.

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

und unten ist mein 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; 

die Eigenschaft Zugriff funktioniert super. Der folgende Code funktioniert gut und wird den Eigenschaftswert für ServerNameUrls.webServer

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

Vielen Dank Pierre für die Bearbeitung. :) – devwannabe

Antwort

3

ich es zeigen fixiert unten den Code durch Hinzufügen :)

import { toJS } from 'mobx'; 

und dann über die Nutzung

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

More info on MobX website

Verwandte Themen