前提
Nuxt.jsとRailsでサービスを作成しています。
配列の中の値を削除する必要があったのでindexOf
とsplice
メソッドを使用して指定の値を削除しようと思いましたが、指定の値ではなく配列の最後の値が削除されてしまいます。
実現したいこと
・配列の中で指定の値を削除したい
該当のソースコード
配列の値
js
1// 同じような値が0〜3に 2(4) [{…}, {…}, {…}, {…}, __ob__: Observer] 30: {…} 41: {…} 52: {…} 63: {…} 7 8color: "#2196F3" 9end: 1648920600000 10id: 275 11long_time: false 12name: null 13post_id: null 14start: 1648914300000 15timed: true 16updated_at: "2022-04-09T20:56:19.593+09:00"
store
js
1export const state = () => ({ 2 // 対象配列を管理 3 events: [], 4}) 5 6export const mutations = { 7 // イベントを指定削除 8 deleteEvent(state, payload) { 9 state.events.splice(state.events.indexOf(payload), 1) 10 }, 11} 12 13export const actions = { 14 // イベント削除、サーバー側に削除リクエストを送ってevents配列の値も削除 15 deleteEvent ({ rootState, commit }, event) { 16 this.$axios.$delete(`${url.SCHEDULE_API}/${event.id}`) 17 .then(() => { 18// eventにthis.selectedEventが入っている 19 commit('deleteEvent', event) 20 ・ 21 ・ 22 ・ 23 }
components
js
1//selectedEvent 2color: (...) 3created_at: (...) 4end: (...) 5id: (...) 6long_term_id: (...) 7long_time: (...) 8name: (...) 9post_id: (...) 10start: (...) 11timed: (...) 12updated_at: (...) 13
js
1// サーバーに送って削除してもらうデータとフロント側で削除するデータを送る 2 deleteEvent (event) { 3 this.$store.dispatch('schedule/deleteEvent', this.selectedEvent) 4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。