aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh hoạ điều hướng giữa các màn hình trong React Native bằng stack và tab

Navigation giữa các màn hình trong React Native cho người mới

admin by admin
22/07/2026
in Lập trình Mobile, React Native
0
586
SHARES
3.3k
VIEWS
Summarize with ChatGPTShare to Facebook

Một app mobile thật hiếm khi chỉ có một màn hình. Bạn sẽ có màn hình Home, Detail, Profile, Settings, Login, Register. Vì vậy sau khi biết dựng UI, danh sách và form, bước tiếp theo là học navigation.

Trong hệ sinh thái React Native, thư viện phổ biến nhất cho navigation là React Navigation. Nó cung cấp các kiểu điều hướng quen thuộc như stack, tab và drawer.

Screen là gì?

Screen là một component đại diện cho một màn hình đầy đủ trong app. Ví dụ HomeScreen, ArticleDetailScreen, ProfileScreen. Navigation giúp bạn chuyển từ screen này sang screen khác.

Stack navigation

Stack giống một chồng màn hình. Khi bạn mở detail từ danh sách, detail được đặt lên trên Home. Khi bấm back, detail được lấy ra và bạn quay lại Home.

import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

const Stack = createNativeStackNavigator();

function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="ArticleDetail" component={ArticleDetailScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

Đây là cấu trúc tối giản. App thật có thể tách navigator ra file riêng để dễ quản lý.

Chuyển màn hình với navigate

function HomeScreen({ navigation }) {
  return (
    <Button
      title="Xem bài viết"
      onPress={() => navigation.navigate('ArticleDetail')}
    />
  );
}

navigation.navigate đưa người dùng sang screen có tên tương ứng.

Truyền params sang màn hình khác

Trong app blog, khi bấm vào một bài viết, màn hình detail cần biết bài nào được chọn. Bạn có thể truyền articleId qua params.

navigation.navigate('ArticleDetail', {
  articleId: article.id,
});

Ở màn hình detail, đọc params từ route.

function ArticleDetailScreen({ route }) {
  const { articleId } = route.params;
  return <Text>Article ID: {articleId}</Text>;
}

Tab navigation dùng khi nào?

Tab phù hợp cho các phần chính của app mà người dùng chuyển qua lại thường xuyên, như Home, Search, Saved, Profile. Stack phù hợp cho luồng đi sâu, như list → detail → edit.

Nhiều app kết hợp cả hai: bên ngoài là tab, bên trong mỗi tab có stack riêng. Với người mới, hãy học stack trước, sau đó học tab.

Lỗi thường gặp

Lỗi đầu tiên là đặt tên screen không nhất quán. Lỗi thứ hai là truyền quá nhiều dữ liệu qua params thay vì chỉ truyền ID rồi fetch/lookup dữ liệu. Lỗi thứ ba là để toàn bộ navigation trong một file khổng lồ. Lỗi thứ tư là chưa nghĩ rõ screen nào thuộc stack, screen nào thuộc tab.

Kết luận

Navigation biến các màn hình rời rạc thành một app có luồng sử dụng thật. Hãy bắt đầu với stack, hiểu navigate, route.params và nút back. Khi đã quen, bạn có thể thêm tab, auth flow và nested navigator.

Nguồn tham khảo: React Navigation: Getting Started, Hello React Navigation, Passing Parameters.

SummarizeShare234
admin

admin

Related Stories

Minh họa môi trường phát triển React Native với laptop, Android emulator và iOS simulator

Android ACTION_VIEW: mở liên kết HTTPS và xử lý khi không có app nhận

by Suong Nguyen
30/10/2026
0

Mở một URL cố định từ Activity, xử lý ActivityNotFoundException và tránh coi resolveActivity là điều kiện bắt buộc để launch.

Minh hoạ FlatList hiển thị danh sách bài viết trong React Native

React Native RefreshControl: giữ refreshing đúng vòng đời của lượt tải

by Suong Nguyen
30/10/2026
0

Tách trạng thái loading của giao diện với khóa chống lượt refresh chồng nhau, và luôn kết thúc spinner sau thành công hoặc lỗi.

Minh hoạ form TextInput validation và keyboard trong React Native

React Native TextInput: bàn phím numeric không thay thế validation

by Suong Nguyen
29/10/2026
0

Giữ input số lượng dưới dạng string trong lúc nhập, kiểm tra định dạng và khoảng giá trị khi xác nhận.

Minh họa môi trường phát triển React Native với laptop, Android emulator và iOS simulator

Android NumberFormat: tách locale, mã tiền tệ và giá trị cần hiển thị

by Suong Nguyen
29/10/2026
0

Định dạng giá trị VND và USD bằng locale rõ ràng, giữ số liệu gốc và phát hiện phần lẻ không phù hợp trước khi hiển thị.

Next Post
Minh hoạ React Native gọi API và hiển thị loading error empty success state

Gọi API trong React Native: loading, error và empty state

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native RefreshControl: giữ refreshing đúng vòng đời của lượt tải
  • Phỏng vấn JavaScript: await forEach không chờ các callback async
  • Android ACTION_VIEW: mở liên kết HTTPS và xử lý khi không có app nhận

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply