Как передать значения из состояния в почтовом запросе vuex

Я собираю данные, используя get и set для моей формы. Я хочу опубликовать состояния в API. Как я могу перемещать состояния или как-то их группировать, чтобы я мог передать их как действие?

  state: {
    firstname: "",
    lastname: "",

  },
  mutations: {
    setFirstName(state, value) {
      state.firstname = value
    },
    setLastName(state, value) {
      state.lastname = value
    },

Так это выглядит так:

sendInfo({commit}, object) {
axios.post('API_URL', object)
.then((response) => {
 ...
})

}
computed: {
            firstname: {
                get() {
                    return this.$store.state.firstname
                },
                set(value) {
                    this.$store.commit("setFirstName", value)
                }
            },

или я подхожу к этому неправильно?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
452
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, лучше всего поместить эти значения в объект состояния, например:

state: {
  user: {
    firstname: '',
    lastname: ''
  }
}

Вы можете установить объект в действии

actions: {
  setData({ commit }, payload) {
    commit('SET_DATA', payload);
  }
},
mutations: {
  SET_DATA(state, payload) {
    state.user = payload;
  }
}

Это также делает его кратким при использовании mapState:

computed: {
   ...mapState(['user'])
}

Нужно ли действие для установки данных? Я использовал get set для установки состояния многошаговой формы. Я отредактирую свой пост и покажу код для этого.

Dave 11.12.2020 16:16

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

Dan 11.12.2020 16:16

Но get/set не только один, у меня их около 5 на разных видах.

Dave 11.12.2020 16:20

Итак, когда я группирую их в состоянии как полезная нагрузка: { }, в мутации я меняю state.firstname = value на state.payload.firstname = value?

Dave 11.12.2020 16:22

Это становится сложнее, когда вы пытаетесь реактивно использовать отдельные значения в такой форме, как ваше редактирование, потому что вам нужен отдельный вычисляемый установщик для каждого из них. Или обходной путь, например клонирование объекта

Dan 11.12.2020 16:30
i.imgur.com/h9DN0DK.png Скриншот видите? Должна ли postInfo({commit}, payload) иметь полезную нагрузку или SET_DATA?
Dave 11.12.2020 16:31

Так же, как действие в моем ответе

Dan 11.12.2020 16:32

Что, если я передам состояние в качестве параметра, должно ли это работать? postInfo({state}) { axios.post('api_url', { name: state.firstname }) }

Dave 11.12.2020 16:48

Да, если данные уже установлены, но state.user.firstname если на моем примере. Вы также можете сделать это: postInfo({ state }, payload) { axios.post('api_url', { name: payload.firstname })}

Dan 11.12.2020 16:52

Другие вопросы по теме