如何用Mobx改变'new method'中的状态

问题描述 投票:0回答:1

我想用一个处于同一状态存储的函数来改变状态。 例如,我有一些代码如下。

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来改变状态吗?

reactjs mobx
1个回答
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;
            }
        })
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.