最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react native 文字輪播的實現(xiàn)示例

 更新時間:2018年07月27日 09:17:44   作者:chaecho  
這篇文章主要介紹了react native 文字輪播的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本著我為人人,人人為我的精神,敲過的代碼就要分享出來!

項目需要做一個文字的輪播,開始想著是由下而上的滾動,但是還是寫的不是很好,就先退而求其次,通過透明度來實現(xiàn)文字的滾動了(也不能說是滾動了,是切換)。

為了貼上來還是寫了些注釋的,也就不一一的解釋了,很簡單的代碼,看注釋就好了。(我就是懶)

import React, { Component } from "react"
import { View, Text, TouchableOpacity } from "react-native"

export default class TextLantern extends Component {
  constructor(props) {
    super(props)
    this.state = {
      nowText: "", // 顯示的文本
      opacity: 1, // 透明度
      index: 0, // 下標
      list: [], // 滾動的列表
    }
  }

  componentWillMount() {
    const { list } = this.props
    this.setState({
      nowText: list[0].title, // 插入顯示的文本
      list, // 滾動的列表
    })
    this.onStart() // 啟動計時器 A
  }

  onStart = () => {
    const { Intervals = 5000 } = this.props // Intervals 可為參數(shù)非必傳
    this.timer = setInterval(() => {
      this.onDisappear() // 間隔Intervals毫秒啟動計時器B
    }, Intervals)
  };

  onDisappear = () => {
    this.timer1 = setInterval(() => {
      const { opacity, index, list } = this.state
      if (opacity === 0) {
        // 當透明度為0時候開始顯示在一個文本
        if (index + 2 > list.length) {
          // 當前顯示的文本為最后一個時 重頭再來
          this.setState({
            nowText: list[0].title,
            index: 0,
          })
        } else {
          this.setState({
            nowText: list[index + 1].title, // 下一個文本
            index: index + 1,
          })
        }
        this.onAppear() // 顯示
        clearInterval(this.timer1)
        return
      }
      this.setState({
        opacity: parseFloat(Math.abs(opacity - 0.04).toFixed(2)),
      })
    }, 20)
  };

  onAppear = () => {
    this.timer2 = setInterval(() => {
      const { opacity } = this.state
      if (opacity === 1) {
        clearInterval(this.timer2)
        return
      }
      this.setState({
        opacity: parseFloat(Math.abs(opacity + 0.04).toFixed(2)),
      })
    }, 20)
  };

  render() {
    const { nowText, opacity, list, index } = this.state
    return (
      <View style={{ borderWidth: 1, margin: 10, padding: 5, borderColor: "#dddddd" }}>
        <TouchableOpacity activeOpacity={0.75} onPress={() => {console.log(list[index].address)}}>
          <View style={{ width: "80%" }}>
            <Text
              style={{
                opacity,
                fontSize: 14,
              }}
            >
              {nowText}
            </Text>
          </View>
        </TouchableOpacity>
      </View>
    )
  }
}

引用:

const tProps = {
      list: [
        { id: 1, title: "不是這件事很難,而是每件事都難", address: 1 },
        { id: 2, title: "穩(wěn)食姐,犯法啊", address: 2 },
        { id: 3, title: "夜半訴心聲,何須太高清", address: 3 },
        { id: 4, title: "失戀唱情歌,即是漏煤氣關窗", address: 4 },
      ],
    }

...

<TextLantern {...tProps} />

點擊跳轉(zhuǎn)說一下我的做法:

通過當前的 index 來拿出對應的address進行跳轉(zhuǎn)。

react要用的話改一下標簽就好了。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • React.js組件實現(xiàn)拖拽排序組件功能過程解析

    React.js組件實現(xiàn)拖拽排序組件功能過程解析

    這篇文章主要介紹了React.js組件實現(xiàn)拖拽排序組件功能過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • react+antd動態(tài)增刪表單方式

    react+antd動態(tài)增刪表單方式

    這篇文章主要介紹了react+antd動態(tài)增刪表單方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 關于useEffect執(zhí)行兩次的問題及解決

    關于useEffect執(zhí)行兩次的問題及解決

    這篇文章主要介紹了關于useEffect執(zhí)行兩次的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React中路由參數(shù)如何改變頁面不刷新數(shù)據(jù)的情況

    React中路由參數(shù)如何改變頁面不刷新數(shù)據(jù)的情況

    這篇文章主要介紹了React中路由參數(shù)如何改變頁面不刷新數(shù)據(jù)的情況,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解React+Koa實現(xiàn)服務端渲染(SSR)

    詳解React+Koa實現(xiàn)服務端渲染(SSR)

    這篇文章主要介紹了詳解React+Koa實現(xiàn)服務端渲染(SSR),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • React 中的 ForwardRef的使用示例詳解

    React 中的 ForwardRef的使用示例詳解

    forwardRef 相當于是為 ref 傳遞的一種方式,普通的函數(shù)式組件就是 Render,而 fowardRef 多加了 Ref 參數(shù),這篇文章主要介紹了React 中的 ForwardRef的使用示例詳解,需要的朋友可以參考下
    2024-06-06
  • react基于Ant Desgin Upload實現(xiàn)導入導出

    react基于Ant Desgin Upload實現(xiàn)導入導出

    本文主要介紹了react基于Ant Desgin Upload實現(xiàn)導入導出,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • react-routerV6版本和V5版本的詳細對比

    react-routerV6版本和V5版本的詳細對比

    React-Router5是React-Router6的前一個版本,它已經(jīng)被React-Router6取代,React-Router 6是一次較大的重大更新,本文就來介紹一下react-routerV6版本和V5版本的詳細對比,感興趣的可以了解一下
    2023-12-12
  • react如何使用mobx6動態(tài)加載數(shù)據(jù)

    react如何使用mobx6動態(tài)加載數(shù)據(jù)

    MobX是一個強大而簡單的狀態(tài)管理工具,它可以幫助我們更好地組織和管理React應用程序中的數(shù)據(jù)流,本文給大家介紹react如何使用mobx6動態(tài)加載數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • React中styled-components的使用

    React中styled-components的使用

    styled-components 樣式化組件,主要作用是它可以編寫實際的CSS代碼來設計組件樣式,本文主要介紹了React中styled-components的使用,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04

最新評論

德昌县| 敖汉旗| 安福县| 汾阳市| 南昌县| 绵竹市| 屯留县| 宜城市| 那坡县| 云和县| 广昌县| 广宗县| 海原县| 聂拉木县| 海口市| 沾化县| 万载县| 车险| 仲巴县| 保康县| 财经| 获嘉县| 威海市| 宁化县| 萨迦县| 南京市| 自贡市| 阳新县| 邵武市| 大兴区| 台州市| 晋宁县| 麻城市| 巫山县| 绍兴县| 贵德县| 蕲春县| 望谟县| 龙岩市| 班戈县| 顺平县|