Я хочу изменить состояние с помощью функции, которая находится в том же хранилище состояний.
Например, у меня есть код, как показано ниже.
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 post api. и в методе есть еще одна функция, которая называется oncomplete.
Поэтому, когда я запускаю функцию «departureAddress», которая говорит
TypeError:this.addressState is undefined.
Возможно, эта ошибка возникает из-за ошибки положения this.addressState, которая находится внутри функции одного метода.
Не могли бы вы помочь мне с этой проблемой?
PS) Должен ли я использовать действие или вычисление mobx в этом случае для изменения состояния?
как насчет попробовать это?
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;
}
})
}
}
рад помочь вам!
Спасибо! Это работает хорошо. Проблема заключалась в «этом» масштабе!