• 1400/03/18

استفاده از auto scroll در flatlist :

سلام استاد وقتتون بخیر
من یه سری داده دارم دقیقا مث اموزشتون از api میخونم 

بعد میخام این داده هارو بدم به flatlist  که حالت slide show نشون بده و auto scroll داشته باشه 
کدی که دارم داده رو میفرستم به یه function  که اونجا کارایه auto scroll رو انجام بدم اینجوریه

const Carousel =({ data }) => {
    const scrollX = new Animated.Value(0)
    const [dataList, setDataList] = useState(data)

    useEffect(()=> {
         setDataList(data)
         infiniteScroll(dataList)
    })

اینجا داده دقیقا درست میاد 

حالا اینم function 

 

function infiniteScroll(dataList){
    console.log(dataList.length)
    const numberOfData = dataList.length
    let scrollValue = 0, scrolled = 0
    setInterval(function() {
        scrolled ++
        if(scrolled < numberOfData)
        scrollValue = scrollValue + width

        else{
            scrollValue = 0
            scrolled = 0
        }

        this.flatList.scrollToOffset({ animated: true, offset: scrollValue})
        
    }, 3000)
}

 داده پیش فرض که میفرستم درست کار میکنه 

و وقتیم که لاگ میگیرم تو خط اول فانکشن دو بار دقیقا به اندازه طول داده لاگ درست میده و همه چیز درسته 

ولی وقتی داده از api میخونم و میفرستم به فانکشن اول یه صفر لاگ میده بعد تعداد و درست میده 
و scroll هم اینجوری میشه که عکس اول رو نشون میده میره دومی برمیگرده اولی باز میره سومی باز اولی تا اخر همنیجوری
ممنون میشم اگه راهنماییم کنین خیلی فکر کردم روش نتونستم درستش کنم
مرسی 

 

 

 

  • 1400/03/19
  • ساعت 13:15

سلام دوست من

کامپوننتهای آماده برای اینکار موجود هست جستجو کنید


logo-samandehi