React native 在React组件中注入存储将导致错误
我正在尝试将存储注入我的React组件,但出现以下错误: Undefined不是函数(评估“decorator(target,property,desc)”) 在我的App.js中我有:React native 在React组件中注入存储将导致错误,react-native,mobx,mobx-react,React Native,Mobx,Mobx React,我正在尝试将存储注入我的React组件,但出现以下错误: Undefined不是函数(评估“decorator(target,property,desc)”) 在我的App.js中我有: import React, { Component } from 'react'; import PoolComponent from './app/Components/PoolComponent'; import MeasurementsStore from './app/Stores/Measuremen
import React, { Component } from 'react';
import PoolComponent from './app/Components/PoolComponent';
import MeasurementsStore from './app/Stores/MeasurementsStore';
export default class PoolApp extends Component {
render() {
return (
<PoolComponent store="MeasurementsStore"/>
);
}
在这种情况下你不需要注射。您将存储直接传递给
池组件
,因此不需要它。但是,您需要更改一些内容:
在App.js
中以字符串形式传递实际的商店,而不仅仅是商店名称:
import React, { Component } from 'react';
import PoolComponent from './app/Components/PoolComponent';
import measurementsStore from './app/Stores/MeasurementsStore';
export default class PoolApp extends Component {
render() {
return (
<PoolComponent store={measurementsStore}/>
);
}
import {observable, action, computed} from 'mobx';
class MeasurementsStore {
@observable phValue = 0;
@observable freeChlorine = 0;
@observable totalChlorine = 0;
@observable totalAlkalinity = 0;
@action data(data: Object) {
if (data.phValue) {
this.phValue = data.phValue;
}
if (data.freeChlorine) {
this.freeChlorine = data.freeChlorine;
}
if (data.totalChlorine) {
this.totalChlorine = data.totalChlorine;
}
if (data.totalAlkalinity) {
this.totalAlkalinity = data.totalAlkalinity;
}
}
}
const measurementsStore = new MeasurementsStore();
export default measurementsStore;
您正在将
inject
导入到PoolComponent.js
文件中,但您似乎没有使用它。如果不使用inject
,是否会出现此错误?我尝试打印以下两个内容:我明白了。但实际上,您并没有在问题中包含的代码中的任何地方使用inject
。另外,您希望从MeasurementsStore.js
文件中的mobx
导入,而不是mobx react
。当我将@inject('MeasurementsStore')
放在我的PoolComponent
上,并将mobx react
更改为mobx
时,我得到以下错误:未定义不是一个函数(评估'(0,_mobx.inject)('MeasurementsStore'))
当我导入存储时,我得到的错误与我的开始文章中的错误相同
import React, { Component } from 'react';
import PoolComponent from './app/Components/PoolComponent';
import measurementsStore from './app/Stores/MeasurementsStore';
export default class PoolApp extends Component {
render() {
return (
<PoolComponent store={measurementsStore}/>
);
}
import {observable, action, computed} from 'mobx';
class MeasurementsStore {
@observable phValue = 0;
@observable freeChlorine = 0;
@observable totalChlorine = 0;
@observable totalAlkalinity = 0;
@action data(data: Object) {
if (data.phValue) {
this.phValue = data.phValue;
}
if (data.freeChlorine) {
this.freeChlorine = data.freeChlorine;
}
if (data.totalChlorine) {
this.totalChlorine = data.totalChlorine;
}
if (data.totalAlkalinity) {
this.totalAlkalinity = data.totalAlkalinity;
}
}
}
const measurementsStore = new MeasurementsStore();
export default measurementsStore;