我正在使用react-native-snap-carousel在普通示例中呈现一个小列表。
import React, {PureComponent} from 'react'
import { ScrollView, Text, View, SafeAreaView,Platform, Dimensions, StyleSheet } from 'react-native';
import Carousel from 'react-native-snap-carousel';
export default class SnapDemo extends PureComponent {
constructor(props){
super(props)
this.state = {data: [{'num':1},{'num':2},{'num':3}]}
}
_renderItem (item) {
console.log(item)
return(<View key={item.item.num} style={{backgroundColor:'orange', height:100}}><Text>{item.item.num}</Text></View>)
}
render(){
return(
<SafeAreaView style={{height: 600}}>
<Carousel
data={this.state.data}
renderItem={this._renderItem}
itemWidth={Dimensions.get('window').width * 0.85}
sliderWidth={Dimensions.get('window').width}
containerCustomStyle={{flex:1}}
removeClippedSubviews={true}
keyExtractor={(item, index) => index.toString()}
slideStyle={{ flex: 1 }}/>
</SafeAreaView>
)
}
}
轮播效果很好,但我看到了2个问题:
我尝试了诸如useScrollView,PureComponent,ClipSubviews之类的其他选项,但是它总是被渲染三次。
我尝试使用KeyExtractor和自定义<View key={Math.Random()}>
,但此警告仍然存在。
关于如何1)我减少对renderItems的调用和2)也摆脱该警告的任何想法?