Я пытаюсь внедрить хранилище в свой компонент React, но получаю следующую ошибку:
Undefined не является функцией (оценка «декоратора (цель, свойство, описание)»)
В моем 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
? - person Tholle   schedule 10.09.2017inject
нигде в коде, который вы включили в свой вопрос. Кроме того, вы хотите импортировать изmobx
в файлMeasurementsStore.js
, а не изmobx-react
. - person Tholle   schedule 10.09.2017@inject('MeasurementsStore')
над своимPoolComponent
и меняюmobx-react
наmobx
, я получаю эту ошибку:Undefined is not a function (evaluating '(0, _mobx.inject)('MeasurementsStore')')
И когда я импортирую магазин, я получаю ту же ошибку, что и в моем стартовом посте. - person sanders   schedule 10.09.2017