CodeBlanks Logo Icon CodeBlanks

Context default değeri

Context default değeri ve fallback öğrenirsin.

Default değeri nedir?

Context'in default (varsayılan) değeri, bileşen herhangi bir Provider içinde değilken useContext'in döndürdüğü değerdir. createContext("light") yazdığında bu varsayılan "light" olur.

Default değer iki amaçla kullanılır. Birincisi gerçek bir başlangıç değeri vermek: uygulama kökünde Provider yoksa bile bileşenler çalışmaya devam eder. İkincisi hata yakalama: createContext(null) yapıp alt bileşende null dönüyorsa Provider'ı unutmuşsun demektir; bu kolayca fark edilir. Hangi yöntemi seçeceğin, hata yapmaya mı yoksa esnek çalışmaya mı öncelik verdiğine bağlı.

Null default ile hata yakala

Bazı ekipler createContext(null) yazmayı tercih eder. Bu yöntemde, eğer bir bileşen Provider dışında kullanılırsa useContext null döner; bunu gören geliştirici hatayı hemen fark eder.

Özellikle büyük uygulamalarda Provider'ı unutmak kolaydır. null döndüğünde alt bileşen theme.toUpperCase() gibi bir çağrı yaparsa hata alır; bu, ekranın sessizce bozulması yerine erken bir uyarı verir. Bu yüzden birçok ekip default değeri null yapıp hatayı erkenden yakalamayı seçer. Uygulamanın kökünde Provider olduğundan emin olursan bu yaklaşım işe yarar.

Uygulama Default değeri kullan

LangContext adında bir context oluştur. createContext(null) kullan. Sonra Picker bileşeni yaz; useContext(LangContext) ile lang değerini oku ve console.log(lang) yaz.

Başlangıç kodu

App.js
// createContext ve useContext'i içe aktar

// LangContext'i createContext ile oluştur; varsayılan null

function Picker() {
  // useContext ile LangContext'ten lang değerini oku
  // lang değerini console.log ile yaz

  return null;
}

Örnek çözüm

App.js
import { createContext, useContext } from "react";

const LangContext = createContext(null);

function Picker() {
  const lang = useContext(LangContext);
  console.log(lang);
  return null;
}

Soru ve cevaplar

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

1 Default değer ver

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

Açıklama: "light" varsayılan tema olur.

2 Senaryoyu karara eşle

Kavram Anlamı
Provider var Provider değeri döner
Provider yok, default null null döner
Provider yok, default "light" light döner
useContext çağrısı Değeri okur

3 createContext(null) ne zaman yararlı?

App.js
const ThemeContext = createContext(null);
  • AsyncStorage yerine
  • Provider'ı unutanı erken uyarmak için Doğru cevap
  • Tüm bileşenlerin varsayılan tema için
  • Stilleri paylaşmak için

Açıklama: null default Provider'ı unutanı uyarmak için kullanılır.

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