【发布时间】:2016-11-07 19:47:16
【问题描述】:
我正在尝试了解 MobX 并创建一个简单的商店:
import { observable, autorun, computed } from "mobx";
class SomeStore {
@observable someField = "";
}
const store = new SomeStore();
window.store = store;
export default store;
但window.store 不包含字段someField。没有这个装饰器字段存在于对象中。
webpack.config 中的加载器:
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
query: {
presets: ["react", "es2015"],
plugins: ["react-html-attrs", "transform-class-properties", "transform-decorators-legacy"]
},
loader: "babel"
}
]
}
【问题讨论】:
-
如何检查对象是否有
someField?我认为 mobx 为该字段创建了一个 getter,因此它可能不会在对象上显示为普通字段。试试window.store.someField看看你会得到什么。 -
window.store.someField返回未定义 -
这绝对不是正常行为。您能否检查是否有任何其他模块覆盖
window.store?看看这个小提琴:jsfiddle.net/mdebbar/uyjoq1s0/4 它工作得很好。 -
我已经检查过了,任何模块都不会覆盖
window.store。我什至尝试过window.storeWithSuperUniqueName= store;,结果是一样的。似乎这是一些独特的问题。感谢您尝试帮助我!但是我会尝试使用 redux 来完成我的任务,因为我没有更多的力量去尝试了解发生了什么问题。
标签: javascript mobx