Programing

Vuex: 왜 내 게터가 제대로 정렬하지 않는지 모르겠어.

c10106 2022. 5. 22. 11:07
반응형

Vuex: 왜 내 게터가 제대로 정렬하지 않는지 모르겠어.

store.js.

getComments(state) {
   let allComments = state.allComments;

    allComments = allComments.sort((a, b) => {
        return a.stamped > b.stamped;
    });
    
     return allComments;
}

allComments코멘트인 객체의 배열이며stamped타임스탬프 필드.

그들은 다음과 같이 반환되고 있다.[{stamped: 1595893492}, {stamped:1595893432}, {stamped: 1595893496}].
순서가 오르지도 내리지도 않고...가장 낮은 값(최소값)은 반환된 두 번째 값이다.

두 가지 문제...

  1. 당신은 당신의 getter에서 상태를 변화시키고 있다.
  2. 비교 함수가 부울을 반환하지만 정수를 반환해야 함

이 두 가지를 모두 다음과 같은 방법으로 해결할 수 있다.

getComments: state => [...state.allComments].sort((a, b) => a.stamped - b.stamped)

스프레드 오퍼레이터가 얕은 복사본을 생성함allComments더 이상 변이하지 않게 하기 위해 주정부 소유물sort.

대조약 및 대조약 반환 값에 대한 자세한 내용은 를 참조하십시오.

참조URL: https://stackoverflow.com/questions/63125225/vuex-cant-tell-why-my-getter-is-not-sorting-properly

반응형