React native 在React组件中注入存储将导致错误

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

我正在尝试将存储注入我的React组件,但出现以下错误:

Undefined不是函数(评估“decorator(target,property,desc)”)

在我的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"/>
    );
}

在这种情况下你不需要注射。您将存储直接传递给
池组件
,因此不需要它。但是,您需要更改一些内容:

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;