CodeBlanks Logo Icon CodeBlanks

Theme context

Context ile tema yönetimini öğrenirsin.

Theme context

Tema, tüm bileşenlerden erişilen paylaşılan bir veridir. Bu yüzden Context ile tutulur. createContext() ile bir bağlam, Provider ile tema değeri yayılır.

Provider, o anki tema nesnesini değer olarak verir. Bileşenler useContext ile temaya erişir; prop geçmeden renkleri okurlar. Böylece tema tek noktadan yönetilir.

ThemeProvider

ThemeProvider, temayı tutan ve yayan bileşendir. İçinde theme state'ini tutar, <ThemeContext.Provider value={theme}> ile çocuklara verir. Uygulamanın en dışına sarılır. Bu sayede tema tek bir kaynaktan yönetilir.

Böylece tüm alt bileşenler useContext(ThemeContext) ile temaya erişir. Tema değiştiğinde Provider yeni değer yayar; tüm bileşenler güncellenir.

Uygulama ThemeContext ve ThemeProvider ekle

Bir ThemeContext ve ThemeProvider ekle. Provider içinde const [theme, setTheme] = useState(light) olsun ve <ThemeContext.Provider value={theme}> kullansın. light tanımlı.

Başlangıç kodu

App.js
import React, { createContext, useState } from 'react';
import { View } from 'react-native';

const light = { background: '#fff', text: '#000' };

// ThemeContext ve ThemeProvider'ı ekle

export default function App() {
  return <View />;
}

Örnek çözüm

App.js
import React, { createContext, useState } from 'react';
import { View } from 'react-native';

const light = { background: '#fff', text: '#000' };

const ThemeContext = createContext();

function ThemeProvider({ children }) {
  const [theme, setTheme] = useState(light);
  return (
    <ThemeContext.Provider value={theme}>
      {children}
    </ThemeContext.Provider>
  );
}

export default function App() {
  return (
    <ThemeProvider>
      <View />
    </ThemeProvider>
  );
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 createContext çağrısı

Soru
const ThemeContext = ____();
Cevap
const ThemeContext = createContext();

Açıklama: createContext bir bağlam yaratır.

2 ThemeProvider ne yapar?

  • Renk üretir
  • Liste çizer
  • Temayı çocuklara yayar Doğru cevap
  • Navigasyon kurar

Açıklama: ThemeProvider temayı Provider ile çocuklara yayar.

3 Theme context kavramlarını eşleştir

Kavram Anlamı
createContext Bağlam yaratır
ThemeProvider Temayı yayar
useContext Temaya erişir
Provider Değer verir

Orta seviye bölümündeki tüm dersler