我创建了一个加载器动画,安装了lottie.js,然后下载了loader.json文件,然后创建了组件ActivityIndicatior,如下所示
import React from "react";
import LottieView from "lottie-react-native";
function ActivityIndicator({ visible = false }) {
if (!visible) return null;
return (
<LottieView autoPlay loop source={require("../animation/loader.json")} />
);
}
export default ActivityIndicator;
然后我在列表屏幕中导入它并定义它const [loading,setLoading] = useState(false);
export default function ListingsScreens({ navigation }) {
const [listings, setListing] = useState([]);
const [error, setError] = useState(false);
const [loading, setLoading] = useState(false);
useEffect(() => {
loadListings();
}, []);
const loadListings = async () => {
setLoading(true);
const response = await listingApi.getListings();
setLoading(false);
if (!response.ok) return setError(true);
setError(false);
setListing(response.data);
};
return (
<ExpoScreen style={styles.screen}>
{error && (
<>
<AppText> Could not retrieve the listings</AppText>
<Button title="retry" onPress={loadListings} />
</>
)}
<ActivityIndicator visible={true} />
{/* <FlatList
data={listings}
keyExtractor={(listings) => listings.id.toString()}
renderItem={({ item }) => (
<CardList
title={item.title}
subtitle={"$" + item.price}
imageUrl={item.images[0].url}
onPress={() => navigation.navigate("ListingDetails", item)}
/>
)}
/> */}
</ExpoScreen>
);
}
3条答案
按热度按时间bakd9h0s1#
重新启动您的服务器解决了错误。我也遇到了同样的问题。
bcs8qyzn2#
确保你使用的是最新版本的lottie-react-native。升级到3.4.0为我修正了这个问题。
zkure5ic3#
我也遇到过同样的问题,我通过美化我的lottie-react-native/lib/LottieView.js文件来解决它。