2017-09-06 16 views
1

React와 Redux를 사용하고 있습니다. {name: 'Jim', votes: '5', type: 'candidate'}정렬 항목에서 반응 및 재 선택 방지

필터링 된 항목 목록을 얻으려면 재검토를 사용하고 있습니다. 또한 투표를 통해 항목 목록을 정렬하기 위해 재검사를 사용하고 있습니다.

항목을 투표하면 자동으로 목록의 위치가 변경됩니다 (항목이 변경되면 다시 선택하여 목록을 재정렬합니다).

이 문제를 방지하고 싶습니다. 국가 내부에서 재주문을하지 않고도 가능합니까?

+0

일부 코드를 보여야합니다 !!! – Panther

답변

0

또 다른 방법은 정규화 데이터 또는 항목 초기화 동안 구분 정보를 생성 구성 될 수있다. 정보를 별도의 배열로 유지하거나 sorting 속성을 각 항목 객체에 푸시 할 수 있습니다.

그런 식으로 점수를 업데이트해도 항목 정렬이 방해받지 않습니다.

+0

그래서 모든 리조트에서 API를 가져 오겠습니까? 아니면 정상 상태 (un-ordered)와 순서 선택기가 변경 될 때 정렬 속성을 가져 오는 정렬 된 상태를 만들 수 있습니다. 나는 이것이 어떻게 작동 할 수 있는지 생각한다. – antoinem

+0

두 번째 옵션으로 향하고있다. 일반적으로 데이터 정규화는 이런 종류의 작업을 수행 할 적절한시기입니다. –

1

shouldSort과 같은 Redux 상태의 새로운 속성을 도입하여 true으로 초기화 할 수 있습니다. 그런 다음 updateVote(newValue) 작업 (또는 지금까지 호출 한 작업)에서 해당 작업에 대한 감속기가 shouldSortfalse으로 설정하도록했습니다.

이제 재 선택 기능에서 shouldSort을 사용하여 정렬할지 여부를 결정할 수 있습니다.

페이지를 입력/퇴장 할 때 shouldSort의 상태를 다시 설정해야합니다. 그렇지 않으면 페이지를 다시 떠날 때 정렬 된 목록을 얻지 못할 수도 있습니다.

+0

'shouldSort'가 false라면, 정렬되지 않은리스트를 다시 선택하지 않을 것입니다 (즉, 투표로 더 이상 분류되지 않음)? 어쩌면 나는 그 논리를 구현해야하고 + 주에서 이전 명령을 저장해야합니까? – antoinem

+0

그래, 아마 맞을거야. 그걸 생각하지 않았어. 네, 이전 상태를 저장하면 해결할 수 있습니다. 그러나 그것은 매우 깨끗한 해결책으로 느껴지지 않습니다. – jonahe

+1

Redux 상태가 뷰의 모양을 반영/결정하도록하는 방법은 어떻습니까? 그래서 당신은 그림을 다시 선택합니다. 기본적으로 투표로 배열을 정렬합니다 (처음 상태에서 데이터를 가져 오거나 설정하는 경우). 투표를 변경하면 주문을 그대로 둡니다. 페이지를 떠나서 다시 입력하면 "get/set"작업을 다시 실행하고 정렬됩니다 (새 투표를 고려하여). 나에게는 청소기가 느껴진다. 그러나 선택기가 정렬에 대해 걱정할 필요가있는 이유는 구성 요소가 데이터를 원하는 방식과 관련된 일종의 변환이기 때문입니다. – jonahe