React Native - Dark Mode

2026. 1. 26. 13:25·🛸 React Native

React Native

 

 

✅ useColorScheme


color scheme을 가져오는 hook

import React from 'react';
import {Text, StyleSheet, useColorScheme} from 'react-native';
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';

const App = () => {
  const colorScheme = useColorScheme();
  return (
    <SafeAreaProvider>
      <SafeAreaView style={styles.container}>
        <Text>useColorScheme(): {colorScheme}</Text>
      </SafeAreaView>
    </SafeAreaProvider>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
});

export default App;

 

https://reactnative.dev/docs/usecolorscheme

 

useColorScheme · React Native

The useColorScheme React hook provides and subscribes to color scheme updates from the Appearance module. The return value indicates the current user preferred color scheme. The value may be updated later, either through direct user action (e.g. theme sele

reactnative.dev

 

 

✅ Appearance


import {Appearance} from 'react-native';

const colorScheme = Appearance.getColorScheme();
if (colorScheme === 'dark') {
  // Use dark color scheme
}

 

https://reactnative.dev/docs/appearance

 

Appearance · React Native

The Appearance module exposes information about the user's appearance preferences, such as their preferred color scheme (light or dark).

reactnative.dev

 

 

✅ ThemeProvider(다크모드 색상을 직접 지정하기 귀찮을 때 쓸 수 있는 preset)


app 폴더를 사용하는 expo router 방식에서는 NavigationContainer를 사용하지 않기 때문에 NavigationContainer의 theme prop에 주는 방식이 아닌 ThemeProvider의 value prop에 theme을 제공하는 방식을 사용한다.

import {
  DarkTheme,
  DefaultTheme,
  ThemeProvider,
} from "@react-navigation/native";

const isDark = useColorScheme() === "dark";

  return (
    <ThemeProvider value={isDark ? DarkTheme : DefaultTheme}>
      <Tabs />
      <StatusBar style="auto" />
    </ThemeProvider>
  );

 

'🛸 React Native' 카테고리의 다른 글

React Native - 유용한 Component, API  (0) 2026.01.30
React Native - react native web swiper  (0) 2026.01.27
React Native - npx expo prebuild, 기기 무선 연결 모니터링  (0) 2026.01.21
React Native - React Navigation  (0) 2026.01.21
React Native - 26.01.20 기준 최신 Components, API  (0) 2026.01.20
'🛸 React Native' 카테고리의 다른 글
  • React Native - 유용한 Component, API
  • React Native - react native web swiper
  • React Native - npx expo prebuild, 기기 무선 연결 모니터링
  • React Native - React Navigation
j2yonghwa
j2yonghwa
Trying to be a fullstack developer 🚀
  • j2yonghwa
    j2yonghwa
    j2yonghwa
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • ⏰ Daily WakaTime (1)
      • 🏖️ 노마드코더 (2)
      • 🍺 Dev Setup (3)
      • 🔭 Tech Info (1)
      • 🚫 Error (1)
      • 📂 라이브러리 (23)
      • ♣️ Next.js 14 (10)
      • ♠️ Next.js 12 (20)
      • 🛸 React Native (12)
      • 🦋 TypeScript (1)
      • 🐍 Python (2)
      • 🌊 TailwindCSS (4)
      • 🧩 SQL (25)
      • 💎 Prisma (5)
      • 🌱 MongoDB (4)
      • 🎯 Redis (1)
      • 🧬 GraphQL (2)
      • 🔥 Firebase (7)
      • 💸 Third-Party Services (2)
      • 🕸️ Web (1)
      • 🏆 코딩테스트 (23)
      • 📙 모딥다 (5)
      • 📗 코테 합격자 되기 -JS- (0)
      • 📘 클린코드 (0)
      • 🍯 꿀팁 🐝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃헙
  • 공지사항

  • 인기 글

  • 태그

    Prisma
    라이브러리
    Firebase
    코딩테스트 입문
    SQL
    MySQL
    Next.js
    자바스크립트
    mongoDB
    next.js 12
    0레벨
    dev setup
    React Native
    Python
    tailwindcss
    react router
    next.js 14
    모딥다
    PostgreSQL
    API
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
j2yonghwa
React Native - Dark Mode
상단으로

티스토리툴바