看错了,你这直接调用应该是有的,如果赋值在调用就没有this,需要用实例store
重新再mobx再install一下就好了
存储器类型,到6:25秒开始再听一下
是需要有typescript的安装环境,你安装了吗
https://www.npmjs.com/package/@babel/plugin-proposal-class-properties
constuctor 可以接受new时候的参数,如果你写一个方法,new完之后还要调用下这个方法。。
没有被观察起来啊
Symbol是es7新增的类型,请看阮一峰的es教程
老师的babel版本比较老,现在babel精简很多了。关于这门课的webpack babel配置,你可以参考我的仓库https://github.com/CregskiN/mobx-demo
mobx Store实例化并导出,在page导入store,getInitialProps使用store@action修饰的方法,可以认为是你这里说的发起action吗?
"@babel/core": "^7.11.4", "@babel/plugin-proposal-class-properties": "^7.10.4", "@babel/preset-env": "^7.11.0", "babel-loader": "^8.1.0", "webpack": "^4.44.1", "webpack-cli": "^3.3.12"
看图片
https://github.com/carrieguo/react-toDoList react最新版本创建的todolist 和 vue-router,另外自己加了删除列表的功能,供你参考
@observable const cityName = ''
this.cityName = "Vienna"
console.log(this.cityName)
mobx 4.x 版本和 5.x 版本区别较大。老师讲的是 4.x,你应该是安装了 5.x,由于5.x使用了 Proxy 对象来实现 observable ,所以会有差异
返回值是this.disposers,遍历之后再把它置为空
npm i babel-loader@7.1.4
decorator就是一种特殊的函数,只不过对于修饰类和类成员具有不同的参数签名
mobx 5.x 和老师的4.x差距较大,简单来说就是5.x mobx使用的proxy实现的,其中 array 这里变为可观察数据后仍然是array
https://github.com/freya0608/mobx-react
babel-loader版本太高了,装8以下的,否则和其它babel开头的插件不兼容
是"副作用",还是"父作用"?
reaction中第一个函数中监听的值发生改变都会调用第二个副作用函数。
when中第一个函数监听的不是一个值,而是表达式,表达式中当然需要有可观察对象,只有当该可观察对象的值变动,并且该表达式值为真的情况下才调用第二个副作用函数。(我试了直接返回一个true,副作用函数也是执行的,不过不输入可观察对象,有什么意义呢。)