2017-04-02 29 views
3

我是mobx新手。我想知道爲什麼當我調用計算的getServerUrls()函數而不是對象時,我得到了ObservableObjectAdministrationMobx返回ObservableObjectAdministration而不是我的對象

enter image description here

下面是我的商店。

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) 
+0

謝謝Pierre編輯它。 :) – devwannabe

回答

3

我通過添加下面的代碼:)

import { toJS } from 'mobx'; 

,然後使用固定它

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

More info on MobX website

相關問題