我是mobx的新手。我想知道为什么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)