RN 封装模板,及文档,以 FFFScrollView 为例
FFFScrollView,实际上是对 ScrollView 进行简单的封装。
props(属性):
height,设置高度,默认值为100。
horizontal,是否水平方向展示,默认值为true。
showHorizontalScrollIndicator,是否展示水平滚动指示符,默认值为false。
direction,方向,默认值为'row'。
endPadding,尾的边距,默认值为0。
startPadding,头的边距,默认值为0。
backgroundColor,背景颜色,默认值为null。
支持展示前置标签和后置标签之间的内容。
调用方式:
<FFFScrollView height={300}
endPadding={10}
backgroundColor={'#ff0088'}>
{this.renderAllItem()}
</FFFScrollView>
FFFScrollView 源码:
import React, { Component } from 'react';
import {
StyleSheet,
View,
ScrollView,
} from 'react-native';
type Props = {};
export default class FFFScrollView extends Component<Props> {
static defaultProps = {
height: 100,
horizontal: true,
showHorizontalScrollIndicator: false,
direction: 'row',
endPadding: 0,
startPadding:0,
backgroundColor: null,
}
constructor(props) {
super(props);
this.state = {
};
}
render() {
return (
<View style={{height:this.props.height,backgroundColor:this.props.backgroundColor?this.props.backgroundColor:null}}>
<ScrollView style={{flexDirection:this.props.direction}}
horizontal={this.props.horizontal}
showHorizontalScrollIndicator={this.props.showHorizontalScrollIndicator}>
{this.props.direction === 'row' ? <View style={{width:this.props.startPadding}}/> : <View style={{height:this.props.startPadding}}/>}
{this.props.children}
{this.props.direction === 'row' ? <View style={{width:this.props.endPadding}}/> : <View style={{height:this.props.endPadding}}/>}
</ScrollView>
</View>
);
}
componentDidMount() {
}
}
const styles = StyleSheet.create({
});