나는 분명히 일부 항목의 목록을 렌더링하는 ListView
을 가지고 있습니다. 이전에는 Redux없이 React Native를 사용 했으므로 기본 데이터가 변경되면 setState()
을 호출하여 데이터를 수정 한 다음 dataSource = dataSource.cloneWithRows(itemsData);
이라고 말하면서 꽤 성능이 좋았습니다. 데이터가 변경된 경우 각 행이 다시 렌더링되었습니다 (예 : rowHasChanged()
은 해당 행에 대해 true
을 반환했습니다.React Native + Redux 응용 프로그램의 ListView 성능
그러나 전반적인 응용 프로그램 디자인은 상당히 임시적이고 유지 관리가 쉽지 않았기 때문에 Redux를 사용하기로 결정했습니다.
이제 내 장면은 "순수"합니다. 즉, 전달 된 소품에만 의존하며 이는 mapStateToProps()
을 통해 생성됩니다. 그러나 문제는 모든 항목이 변경 될 때마다 전체 ListView
요소가 다시 만들어 지므로 모든 항목이 다시 렌더링됩니다 (내 rowHasChanged()
도 호출되지 않음). 이 동작을 제거하는 유일한 방법은 장면을 비 순수하게 다시 만드는 것인데, 상태를 추가하고 필요에 따라 어떻게 든 업데이트해야하기 때문에 상당히 실망 스럽습니다.
또는 다른 대안은 무엇입니까?
@Dmitry Frank 그 대답이 도움이 되었습니까? –