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({

});