【发布时间】:2017-09-10 09:38:53
【问题描述】:
我正在尝试向我的 React 组件注入一个商店,但是我收到以下错误:
未定义不是函数(评估'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"/>
);
}
}
在我的 PoolComponent.js
import React, { Component } from 'react';
import { observer, inject } from 'mobx-react';
import { AppRegistry, Text, View, TextInput , Picker, Button} from 'react-native';
@observer
export default class PoolComponent extends Component {
saveItems() {
console.log('Pressed save');
}
render() {
const store = this.props.store;
return (
<View>
<Text>Selecteer Pool</Text>
<Picker>
<Picker.Item label="Big" value="big"/>
<Picker.Item label="Small" value="small"/>
</Picker>
<Text>PH</Text>
<TextInput/>
<Text>Totaal Chloor</Text>
<TextInput/>
<Text>Vrij Chloor</Text>
<TextInput/>
<Button
title="Learn More"
color="#841584"
accessibilityLabel="Opslaan"
onPress={this.saveItems}
/>
</View>
);
}
}
在 MeasurementsStore.js 我有
import {observable, action, computed} from 'mobx-react';
export default 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;
}
}
}
【问题讨论】:
-
您正在将
inject导入到您的PoolComponent.js文件中,但您似乎没有使用它。不使用inject是否会出现此错误? -
我试图打印这两个东西:
和 {this.props.store.phValue} 但两者都导致同样的错误。 -
我明白了。但是您实际上并未在问题中包含的代码中的任何地方使用
inject。此外,您希望从MeasurementsStore.js文件中的mobx导入,而不是mobx-react。 -
当我将
@inject('MeasurementsStore')放在我的PoolComponent上方并将mobx-react更改为mobx时,我收到此错误:Undefined is not a function (evaluating '(0, _mobx.inject)('MeasurementsStore')')当我导入商店时,我收到与中相同的错误我的开始帖子
标签: react-native mobx mobx-react