1.image.png
解析错误:不允许在装饰器和类之间使用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...

image.png

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不一致,就会报错
image.png

或者将 <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')
 

云端的日子
66 声望1 粉丝