Vuex 배열에서 항목 제거
Vuex를 사용하기 시작한 지 얼마 되지 않았지만 문제가 있습니다(이것은 제 입장에서 알 수 없는 구문 오류일 수 있습니다).liked_items를 가진 사용자가 있으며 아이템과 다른 네트워크 콜이 있습니다.
mutations: {
SET_TOGGLE_LIKED: (state, { global_id }) => {
alert('here is global_id: ' + global_id)
state.user.liked_items.find((obj,i) => {
if(obj.global_id === global_id){ // no global_id
console.log('that exists at i: ' + i + ' with length: ' + state.user.liked_items.length)
state.user.liked_items.splice(i, 1)
console.log('that exists at i: ' + state.user.liked_items.length)
}else{
console.log('that doesnot exist!')
}
})
}
liked_items 목록에서 아이템을 삭제한 후 해당 아이템이 리콜된 것 같고 undefined에 global_id가 존재하지 않는다는 오류가 나타납니다.
다음을 통해 수정할 수 있습니다.
state.user.liked_items.find((obj,i) => {
if(obj){
if(obj.global_id === global_id){
하지만 왜 내가 그 존재에 대해 확인할 필요가 있는가?obj
여기?
또한 지도를 사용하여 이 정보를 얻을 수 있습니다.index
다음 명령을 사용하여 개체를 제거합니다.
돌연변이
REMOVE_OBJECT_FROM_ARRAY: (state, payload) => {
const i = state.someArrayofObjects.map(item => item.id).indexOf(payload.id);
state.someArrayofObjects.splice(i, 1);
}
여기, 그id
payload와 함께 전달되는 ID입니다.MUTATION
, 또한, 우리는 오직 다음 명령어만 통과시킬 수 있습니다.id
전체적으로payload
이 경우 다음과 같은 작업을 수행할 수 있습니다.
REMOVE_OBJECT_FROM_ARRAY: (state, payload) => {
const i = state.someArrayofObjects.map(item => item.id).indexOf(payload);
state.someArrayofObjects.splice(i, 1);
}
가지고 계신 경우undefined
의 요소로서liked_items
어레이는obj
~하듯이undefined
가끔씩.
심플하게 할 수 있습니다.if
단, 다음과 같습니다.
state.user.liked_items.find((obj,i) => {
if(obj && obj.global_id === global_id){
또는 어레이를 프리필터링하여 non-filtering만 할 수 있습니다.undefined
값:
state.user.liked_items.filter(o => o).find((obj,i) => {
if(obj.global_id === global_id){
다음 변환을 사용할 수 있습니다.splice
Javascript 배열 메서드에서 가져옵니다.
deleteElement: function(state.element) {
state.myArray.splice(this.events.indexOf(element), 1);
}
요소의 인덱스를 알고 있는 경우, 다음과 같이 됩니다(명확히).
deleteElement: function(state,elementIndex) {
state.myArray.splice(elementIndex, 1);
}
"1"은 요소에서 시작하는 제거할 요소의 수입니다.색인
언급URL : https://stackoverflow.com/questions/49712059/removing-an-item-from-an-array-in-vuex
'sourcecode' 카테고리의 다른 글
JWT 토큰 유효성 검사 - beforeEnter (0) | 2022.08.08 |
---|---|
Vue에서 JSON 데이터에 대한 드롭다운 필터 생성 (0) | 2022.08.08 |
Vue Vuex: 계산된 속성이 변경되기 전에 오래된 데이터가 일정 기간 유지됩니다. (0) | 2022.08.08 |
두 JUnit Assert 클래스의 차이점 (0) | 2022.08.08 |
Custome vue 부트스트랩 테마가 작동하지 않음 (0) | 2022.08.08 |