Как изменить состояние внутри «нового метода» с Mobx - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу изменить состояние с помощью функции, которая находится в том же хранилище состояний.
Например, у меня есть некоторый код, как показано ниже.

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;
      })
}

Я могу сделать roadAddr с помощью daumпост api.и есть еще одна функция в методе, называемом oncomplete.
Так что, когда я запускаю функцию 'escapeAddress', которая говорит

TypeError: this.addressState не определен.

Возможно, эта ошибка происходит из-за ошибки позиции этого.addressState, который находится внутри функции одного метода.
Не могли бы вы помочь мне решить эту проблему?

PS) Должен ли я использовать action или computed of mobx в этом случае, чтобы изменить состояние?

1 Ответ

1 голос
/ 08 апреля 2019

как насчет этого?

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;
            }
        })
    }
}
...