Как вызвать метод после получения данных Vuex? - PullRequest
0 голосов
/ 11 апреля 2020

Я хотел бы вызвать метод один раз, как можно скорее после загрузки его компонента, но это необходимо сделать после того, как определено вычисляемое свойство, которое получает данные из Vuex.

Например:

  computed: {
    my_data: function() {
      return this.$store.state.my_data;
    }
  },
  methods: {
    useData: function(){
      axios.post('api/fetch', {'data': this.my_data});
    }
  },
  mounted() {
    this.useData(); //error: this.my_data is undefined;
  },
  watch: {
    my_data: function(){
      this.useData(); //never triggers
    }
  }

Если я вызову this.useData () из смонтированного, my_data по-прежнему не определена. Я попытался установить наблюдателя на my_data, но он никогда не срабатывает. Я чувствую, что здесь что-то упущено.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Оказывается, «неопределенная» ошибка была вызвана другим объектом, который поделился именем ключа с моим сохраненным объектом. К сожалению, туманное сообщение об ошибке отправило меня в дикую погоню goose после того, как я предположил, что сохраненный объект был проблемой, основанной на моей неопытности с Vuex.

0 голосов
/ 11 апреля 2020

Убедитесь, что данные в my_data корректно обновляются в хранилище. Если проблема не устранена, используйте deep для просмотра my_data

watch:{
  my_data:{
    handler:function(){
      this.userData();
    },
    deep:true
  }
}

. Если вы используете часы для запуска метода, не нужно использовать его для вызова из mounted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...