我创建了一个加载器动画,安装了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>
);
}
答案 0 :(得分:2)
重新启动服务器可解决该错误。我也遇到了同样的问题。
答案 1 :(得分:1)
确保您使用的是最新版本的lottie-react-native。升级到3.4.0可以解决此问题。