10

Mobx & React を始めたばかりで、ストアの更新に問題があります。「me」プロパティを更新する必要があるボタンをクリックすると、エラーが発生します。

Store.js:12 Uncaught TypeError: Cannot set property 'me' of null

私の店:

import { observable } from 'mobx';

class Store {

    @observable me;

    constructor() {
        this.me = 'test';
    }

    change_me(){
        this.me = 'test 1';
        console.log(this); // null???
    }

}

const store = new Store();

export default store;

コンポーネント:

import React from "react";
import { observer } from 'mobx-react';

export default class Layout extends React.Component{

    render(){

        var store = this.props.store;

        return(
            <div>
              <button onClick={store.change_me}>{store.me}</button>
            </div>
        )

    }
}

これがどのように機能するかの基本的な部分を見逃している可能性がありますが、それを理解することはできません.

4

3 に答える 3

1

わかりませんmobxonClick={store.change_me}、クラスのメソッドを関数として(なしでthis)使用しているため、問題です。次のようなものを使用する必要があります。

onClick={event => store.changeMe(event)}

そうしないと、へのバインディングstoreが失われます。

また可能ですが、読みにくいです:

onClick={store.changeMe.bind(store)}
于 2016-11-20T08:30:24.293 に答える