首先創(chuàng)建簡(jiǎn)單的react-native項(xiàng)目,創(chuàng)建一個(gè)文件夾。然后用命令符輸入
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、東湖網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、東湖網(wǎng)絡(luò)營(yíng)銷、東湖企業(yè)策劃、東湖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供東湖建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
react-native init swiper
創(chuàng)建完成之后開(kāi)發(fā)項(xiàng)目,我用的vs
打開(kāi)控制臺(tái),安裝swiper依賴。
安裝:npm i react-native-swiper --save
查看:npm view react-native-swiper
刪除:npm rm react-native-swiper --save
這里還需要 npm i 下更新下本地的依賴庫(kù)
啟動(dòng)app項(xiàng)目
ios: react-native run-ios
android: react-native run-android
開(kāi)始上碼,在src里面創(chuàng)建個(gè)components文件夾下邊創(chuàng)建個(gè)swiper.js文件,以及index.js,加上說(shuō)明文檔
import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { StyleSheet, TouchableWithoutFeedback, View } from 'react-native'; import RNSwiper from 'react-native-swiper'; const styles = StyleSheet.create({ activeDotWrapperStyle: { //圓點(diǎn)樣式 }, activeDotStyle: { //圓點(diǎn)樣式 }, dotStyle: { //圓點(diǎn)樣式 } }); const activeDot = (); const dot = ; export class Carousel extends Component { // Define component prop list static propTypes = { data: PropTypes.array, height: PropTypes.number, onPressItem: PropTypes.func, renderItem: PropTypes.func.isRequired, autoplay: PropTypes.bool, autoplayTimeout: PropTypes.number }; // Define props default value static defaultProps = { data: [], height: 150, autoplay: true, autoplayTimeout: 2.5, onPressItem: () => {}, renderItem: () => {} }; // Define inner state state = { showSwiper: false }; constructor(props) { super(props); this.handleItemPress = this.handleItemPress.bind(this); } componentDidMount() { setTimeout(() => { this.setState({ showSwiper: true }); }); } handleItemPress(item) { this.props.onPressItem(item); } _renderSwiperItem(item, index) { return ( this.handleItemPress(item)}> ); } render() { return this.props.data.length === 0 || !this.state.showSwiper ? null : ({this.props.renderItem(item)} {this.props.data.map((item, idx) => this._renderSwiperItem(item, idx))} //如果數(shù)據(jù)是個(gè)對(duì)象里面的數(shù)組加一個(gè)循環(huán) ); } }
這是index.js文件
import { Carousel } from './carousel/Carousel'; export { Carousel };
公共組件庫(kù)
這里用于放置與業(yè)務(wù)無(wú)關(guān)的公共組件。組件實(shí)現(xiàn)必須考慮靈活性,擴(kuò)展性,不能包含具體的業(yè)務(wù)邏輯。
組件必須以 你做的業(yè)務(wù)命名 為前綴,如 TryCarousel.js 。每個(gè)組件必須單獨(dú)放在目錄中,目錄必須全小寫(xiě)(中橫線分割),如 carousel/TryCarousel.js 。
一個(gè)基本的組件結(jié)構(gòu):
import PropTypes from 'prop-types'; import React, { Component } from 'react'; export class TryCarousel extends Component { // Define component prop list static propTypes = {}; // Define props default value static defaultProps = {}; // Define inner state state = {}; constructor(props) { super(props); } // LifeCycle Hooks // Prototype Functions // Ensure the latest function is render render() {} }
組件列表
carousel(輪播組件)
主要用于通用的圖片輪播,能夠提供點(diǎn)擊事件響應(yīng)。
Usage:
Props:
屬性 | 描述 | 類型 | 默認(rèn)值 |
---|---|---|---|
data | Carousel數(shù)據(jù)源 | Array | - |
height | Carousel的高度 | number | 150 |
onPressItem | 點(diǎn)擊Carousel Item的時(shí)候觸發(fā) | fn | - |
renderItem | 具體的渲染Item的方法,請(qǐng)參考FlatList | fn | - |
autoplay | 是否自動(dòng)切換 | bool | true |
autoplayTimeout | Item自動(dòng)切換的時(shí)間間隔(單位s) | number | 2.5 |
需要導(dǎo)入的地方
import { HigoCarousel } from '../../components';{ return ; }} //圖片 />
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。