Передача индекса таблицы в мой магазин vuex - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь передать удаляемую запись и индекс таблицы, чтобы ее можно было обновить.

Кажется, удаление работает нормально, но удаление нужной записи из таблицы - нет.

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

Мой компонент

//recordID - record to delete from API
// index - index in table
// console log returns correct info for both
onDelete (recordId, index) {
  this.$store.dispatch('cases/deleteCase', recordId, index)
}

// also tried this.$store.dispatch('cases/deleteCase', (recordId, index)) but didn't work or delete

В моем магазине у меня есть

Действие

deleteCase ({ commit, context }, data, index) {
  console.log(data)
  return new Promise ((resolve, reject) => {
   //Delete works as expected
   this.$axios.delete('/cases/' + data + '.json')
  .then(
   resolve(commit('DELETE_CASE', index))
    )
    .catch(e => {
      context.error(e)
      reject('/cases/')
    })
  })
}, 

Моя мутация

// delete a todo
DELETE_CASE (state, index) {
  state.cases.splice(index, 1);
}

Большое спасибо

1 Ответ

0 голосов
/ 02 июля 2018

Разобрался, поделился с другими с похожей проблемой

нужно передать объект

onDelete (recordId, index) {
this.payload = {'recordId': recordId, 'index': index}
 this.$store.dispatch('cases/deleteCase', this.payload)
}

Тогда я могу выделиться в своем действии vuex

deleteCase ({ commit, context }, payload) {
      return new Promise ((resolve, reject) => {
       this.$axios.delete('/cases/' + payload.recordId + '.json')
      .then(
       resolve(commit('DELETE_CASE', payload.index))
        )
        .catch(e => {
          context.error(e)
          reject('/cases/')
        })
      })
    }, 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...