1.
解析错误:不允许在装饰器和类之间使用export关键字。请使用' export @dec class '代替。
(错误)
@connect('aaa')
export default class AppView extends React.Component{
render(){
//....
}
}
(正确)
@connect('aaa')
class AppView extends React.Component{
render(){
//....
}
}
export default AppView
如果还不行,由于MobX Decorators在Create-React-App v2中使用报错,因此需要配置(此配置相当于修改webpack配置的另一种方式)
参考https://blog.csdn.net/wangwei...
2.使用inject报错
首先确保用<Provider store></Provider>包裹了路由页
import { Provider } from 'mobx-react'
import store from './store'
function App() {
return (
<Provider store={store}>
<Switch>
<Route path='/login' component={LoginComponent} />
<Route path='/' component={Home} />
</Switch>
</Provider>
);
}
其次@inject('store')中的注入名称与<Provider store></Provider>的配置项名称一致,即都是store
如果@inject('appStore'),与<Provider store></Provider>中的store不一致,就会报错
或者将 <Provider store={store}>改为<Provider {...store}>,那么@inject('mobx的实例名称appStore')
// mobx.js文件
class AppStore {}
const appStore = new AppStore()
const store = { appStore }
export default store
//App.js文件
<Provider {...store}>
<Switch>
<Route path='/login' component={LoginComponent} />
<Route path='/' component={Home} />
</Switch>
</Provider>
// login.js文件
@inject('appStore')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。