2017-07-04 12 views
2

私はcounter whoch observable変数を更新しようとしていますが、コンポーネントの値を見ています。インクリメントボタンをクリックすると、this.counterは常にNaNであり、 。 コンポーネント:変数はmobxクラスのメソッドでNaNです(observable - mobx)

@observer 
class App extends Component { 
    constructor(props){ 
    super(props) 
    } 
    render() { 
    const counter = this.props.appState; 
    return (
     <div className={styles.description}> 
      <button onClick={counter.increment.bind(this)}>+</button> 

Mobxクラス;

class AppState{ 
    @observable counter=0 

    increment(){ 
     debugger //its null.. 
     this.counter++; 
    } 
} 
export default AppState 

mainjs:

import AppState from './AppState' 
... 
var appState = new AppState 

ReactDOM.render(
    <App appState={appState}/>, 
    document.getElementById('root') 
); 

私はそれを修正することができますか?

答えて

2

あなたの問題は、thisが指しているところでは、鋭い舌を保つ必要があると思います。 Appにはcounterというフィールドはありません。それは、bind(this)を書くときに参照しようとするものです。

Try <button onClick={() => counter.increment()}>+</button>

+0

あなたの答えは私の問題の両方を解決しました:) – TyForHelpDude

+1

うれしい私は助けることができました!あなたが受け入れられたように答えをマークしたなら、涼しいでしょう:) – finnss

関連する問題