import React, { useState, useEffect } from 'react';
import { View, ActivityIndicator, StyleSheet } from 'react-native';
const MyActivityIndicator = () => {
const [loading, setLoading] = useState(true);
useEffect(() => {
// Simulate an asynchronous task
const timer = setTimeout(() => {
setLoading(false);
}, 3000);
return () => clearTimeout(timer); // Cleanup the timer on component unmount
}, []);
return (
<View style={styles.container}>
{loading ? (
<ActivityIndicator size="large" color="#0000ff" />
) : (
<View>
{/* Your content when loading is complete */}
</View>
)}
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
export default MyActivityIndicator;
在这个例子中,ActivityIndicator 组件被用于显示活动指示器。在 useEffect 钩子中,我们通过设置一个定时器来模拟异步任务。当任务完成时,setLoading(false) 会触发组件的重新渲染,从而隐藏活动指示器并显示实际内容。
重要的属性:
- size: 设置活动指示器的大小,可选值包括 "small"、"large" 或一个数字。
- color: 设置活动指示器的颜色。
此外,你可以根据需要更改样式以适应你的应用程序设计。这个例子中的 container 样式设置了容器的布局,使其在屏幕中央显示。
请记得在实际应用中,你可以根据需要调整 useEffect 中的逻辑,以便在真实的异步任务完成后隐藏活动指示器。
转载请注明出处:http://www.zyzy.cn/article/detail/9460/React Native