我有此陣營組件(使用Mobx,商店等):`this`正在對對象方法未定義時稱作反應組分丙
import React from 'react';
import { observable } from 'mobx';
import { observer } from 'mobx-react';
import Counter from './../components/counter';
const CountStore = {
numbr: observable(1),
get by100() {
return this.numbr * 100;
},
updateNumber(e) {
console.log(this);
if ((e.target.value >= 1) && (e.target.value <= 10)) {
this.numbr = e.target.value;
} else this.numbr = 'A number between 1 and 10, idiot';
},
get numberValue() {
return parseInt(this.numbr, 10);
},
};
CountStore.updateNumber();
export default observer(() => <Counter store={CountStore} />,
);
import React from 'react';
import { observer } from 'mobx-react';
import DevTools from 'mobx-react-devtools';
export default observer(({store}) => (
<div className="wrapper">
<DevTools />
<h5>Type a number between 1-10: {store.numberValue}</h5>
<input type="text" onChange={store.updateNumber} />
<h5>Computed value: {props.store.by100}</h5>
</div>
),
);
當然,商店應該放在一個單獨的文件中,爲了清楚起見,我在那裏添加了它。問題是什麼時候執行「updateNumber」函數this
結果未定義。我做錯了什麼,我該如何解決這個問題?謝謝。
很肯定這是一個範圍問題的解決方案,你的'this'的上下文不綁定到'updateNumber' –