2017-11-16 6 views
0

현재 사용중인 경우 ScrollView에 항목을 추가하고 있습니다. 상태에있는 항목 컬렉션에 항목을 추가하면 모든 항목이 다시 렌더링됩니다.모든 항목을 다시 렌더링하지 않고 ScrollView에 항목 추가하기

내가 할 수있는 대안이 있습니까? 현재 구현은 ScrollView이어야하므로 FlatList 또는 List의 다른 구현으로 변경하는 것은 부적절합니다.

<View style={{flex: 1}}> 
    <ScrollView> 
     <TouchableWithoutFeedback accessible={false}> 
     <View style={{flexDirection: 'column', alignItems: 'center'}}> 
     {this.state.items.map((item, key) => 
     (
      <Flag country={item} key={key} /> 
     ))} 
     </View> 
     </TouchableWithoutFeedback> 
    </ScrollView> 
    </View> 

감사합니다

답변

0

내가 FlatList를 사용하는 대신있는 ScrollView를 렌더링 상태의 집합에서지도를 사용으로 확인한다. 기본적으로 this.state.items을 업데이트하면 해당 상태와 관련된 모든 항목을 다시 호출해야합니다.

나는이 자원을 사용했습니다 그것은 당신이 당신의 코드를 업그레이드하는 데 도움이 될 것입니다

http://matthewsessions.com/2017/05/15/optimizing-list-render-performance.html

+0

내가 FlatList 알고있다, 그러나 나는 그것이있는 ScrollView이어야 언급 한 바와 같이, 내가 할 수있는 방법이있다 ScrollView의 모든 항목을 다시 렌더링하지 않고 항목을 추가 하시겠습니까? – Amaros

+0

죄송합니다. 사실 FlatList를 사용하는 대신 FlatList의 개념을 사용했습니다. 다시 말해 재활용 가능한 하위 뷰를 만드는 방법을 살펴보십시오. – ReyHaynes