如何使用Mobx更改“新方法”内的状态

时间:2019-04-08 06:17:57

标签: reactjs mobx

我想使用处于相同状态存储的功能来更改状态。
例如,我有一些类似下面的代码。

import { observable, action } from 'mobx';

export default class AddressTime {
  @observable addressState = {
    departure: {
      road: '',
    }
  };

  departureAddress = () => {
      new window.daum.Postcode({
        oncomplete(data) {

        const roadAddr = data.roadAddress; 

        this.addressState.departure.road = roadAddr;
      })
}

我可以通过daum post api制作roadAddr。该方法中还有一个函数叫做oncomplete。
所以当我运行'departureAddress'函数时,

  

TypeError:this.addressState未定义。

此错误可能来自此方法内部的this.addressState的位置错误。
你能帮我解决这个问题吗?

PS)在这种情况下,我必须使用动作或mobx的计算来更改状态吗?

1 个答案:

答案 0 :(得分:1)

该怎么办?

import { observable, action } from 'mobx';

export default class AddressTime {
    @observable 
    addressState = {
        departure: {
            road: '',
        }
    };

    @action
    departureAddress = () => {
        const _this = this
        new window.daum.Postcode({
            oncomplete(data) {

                const roadAddr = data.roadAddress; 

                _this.addressState.departure.road = roadAddr;
            }
        })
    }
}