問(wèn)題
在使用 swiper 的時(shí)候,發(fā)現(xiàn)在安卓機(jī)下,如果用到了可滾動(dòng)組件(如:FlatList , SectionList,ListView,ScrollView 等)武学,swiper無(wú)法正常顯示啥酱。
解決方法
加個(gè)只調(diào)用一次的定時(shí)器
constructor(props) {
super(props);
this.state = {
swiperShow:false,
};
}
componentDidMount(){
//系統(tǒng)自帶方法只調(diào)用一次
setTimeout(()=>{
this.setTimeout = this.setState({swiperShow:true});
},1)
}
//移除定時(shí)器
componentWillUnmount(){
this.setTimeout && clearTimeout(this.setTimeout);
}
renderSwiper=()=>{
if(this.state.swiperShow){
return (
<Swiper height={150} autoplay={true} activeDotColor="#fff">
{BANNER_LIST.map((item, i) => {
return <Image source={require('../../../img/banner.jpeg')} key={i} style={styles.banner}/>;
})}
</Swiper>
);
}else {
return <View style={{height:150}}></View>;
}
}
然后在render()里面需要渲染 swiper 的地方調(diào)用 {this.renderSwiper()}