ExpoIntermediate
Loading, error ও retry state
async data-র ৩টি state — UI-তে সঠিকভাবে দেখানো।
4টি অংশবাংলা ভাষায়
প্রতিটি async কাজের ৩টি state — loading / error / data:
const [state, setState] = useState({
loading: true,
error: null,
tasks: [],
});
useEffect(() => {
fetchTasks()
.then((tasks) => setState({ loading: false, error: null, tasks }))
.catch((error) =>
setState({ loading: false, error, tasks: [] })
);
}, []);if (state.loading) return <ActivityIndicator size="large" />;
if (state.error) {
return (
<View>
<Text>লোড করা যায়নি</Text>
<Pressable onPress={reload}>
<Text>আবার চেষ্টা</Text>
</Pressable>
</View>
);
}
return <FlatList data={state.tasks} refreshing={reloading} onRefresh={reload} />;retry বাধ্যতামূলক
error state-এ শুধু text নয়, একটি action দিন (আবার চেষ্টা / সেটিংস)। pull-to-refresh-ও এক ধরণের retry।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।