اجرای انیمیشن بیشتر در React Native با Reanimated و Lottie

در مقاله قبلی خود ، من نحوه اجرای عملکرد Pull-to-Refresh را در React Native با استفاده از Reanimated و Lottie پوشش دادم. حال ، بیایید با اضافه کردن یک انیمیشن بیشتر ، آن را یک قدم جلوتر برداریم تا داده های اضافی را در هنگام پیمایش کاربر به پایین لیست بدست آوریم.
ما از یک رویکرد صفحه بندی شده استفاده خواهیم کرد که در ابتدا تعداد مشخصی از موارد را بارگذاری می کنیم و وقتی کاربر به انتهای لیست می رسد ، بیشتر واکشی می کنیم.
مرحله 1: تنظیم وضعیت و داده ها را تنظیم کنید
مجموعه داده ها را وارد کرده و متغیرهای حالت لازم را تعریف کنید:
import React, { useState, useCallback } from 'react';
import { View, FlatList, StyleSheet, Dimensions } from 'react-native';
import Animated from 'react-native-reanimated';
import LottieView from 'lottie-react-native';
import data from './data';
const PAGE_SIZE = 6;
const { width } = Dimensions.get('window');
const LoadMoreList = () => {
const [isLoadingMore, setIsLoadingMore] = useState(false);
const [page, setPage] = useState(1);
const [items, setItems] = useState(data.slice(0, PAGE_SIZE));
const onRefresh = useCallback(done => {
setTimeout(() => {
setPage(1);
setItems(data.slice(0, PAGE_SIZE));
done();
}, 5000);
}, []);
const loadMoreData = () => {
if (isLoadingMore) return;
setIsLoadingMore(true);
setTimeout(() => {
const newPage = page + 1;
const newData = data.slice(0, newPage * PAGE_SIZE);
if (newData.length > items.length) {
setItems(newData);
setPage(newPage);
}
setIsLoadingMore(false);
}, 3000);
};
return (
{/* Render Item */} }
onEndReached={loadMoreData}
onEndReachedThreshold={0.5}
ListFooterComponent={() =>
isLoadingMore ? (
) : null
}
/>
);
};
const styles = StyleSheet.create({
loaderMoreAnimation: {
width,
height: 300,
},
});
export default LoadMoreList;
این پیاده سازی با اضافه کردن یک انیمیشن بیشتر در هنگام واکشی داده های اضافی ، تجربه کاربر را افزایش می دهد. ترکیبی از پیمایش کشش به بازخوانی و بی نهایت یک UI یکپارچه و مدرن را ایجاد می کند.
آن را امتحان کنید و افکار خود را در نظرات به من اطلاع دهید!