@fessss

Не записывается значение?

Есть компонент - большая форма
data: {
  return {
    form: {
      // тут объект с глубокой вложенностью
    },
  }
}


Вот метод в actions, где я делаю запрос
async getDataFromApi({ commit }) {
    const res = await axios.get('url');
    if (res.data) {
      commit('mutationName', res.data);
    }
    return res;
  },


А вот я вызываю этот action в компоненте
methods: {
  ...mapActions('api', ['getDataFromApi']),
  getData() {
    this.getDataFromApi().then(res => {
      if(res.status === 200 && res.data) {
        this.form = res.data; // тут this.form остается прежним, не меняется
      }
    })
  },
},


Так вот, помогите понять, почему this.form не изменяется.
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
nuykon
@nuykon
Full Stack Developer
А это весь код?

Если да, то все просто, вы нигде не вызываете метод - getData() - это раз.
Два - этот метод(getData() ) вообще не нужен, так как
...mapActions('api', ['getDataFromApi']), - уже добавил метод getDataFromApi

те в итоге вам в хуке created/mounted или в другом надо сделать вызов метода

methods: {
  ...mapActions('api', ['getDataFromApi']),
},
created() {
    this.getDataFromApi().then(res => {
      if(res.status === 200 && res.data) {
        this.form = res.data; // тут this.form должен изменится
      }
    })
},


ну и странно вы работаете с vuex в данном случае :)
видимо вам стоит начать с азов js, уже потом фреймворки...
Ответ написан
@Miki06
data должен быть функцией которая возвращает form
data(){
return{
form:{}
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы