Önemli: Diğer yazılarımla direkt bağlantılı bir yazıdır. İlk olarak bu yazıdan okumaya başladıysanız, eğitim serisine kısaca bir göz atmanızı tavsiye ederim.
Merhabalar.
Bir önceki yazımda bıraktığımız yerden devam ediyoruz. Amacımız birden fazla Context oluşturup bunu nasıl kullanabilirdik buna bakacağız.
UserNameContext.jsx isminde Context klasörü içinde bir dosya oluşturuyorum. Amacım diğer component’lere UserName’i gönderebilmek.
Kodlarımız aşağıdaki gibi olacak. Diğer yazımdakinden çok farkı yok sadece index.js de sarmalama yöntemini göreceksiniz.
import React, { createContext, useState } from 'react';
export const UserNameContext = createContext();
export const UserNameProvider = ({ children }) => {
const [userName, setUserName] = useState('Murat Bilginer');
return (
<UserNameContext.Provider value={{ userName, setUserName }}>
{children}
</UserNameContext.Provider>
);
};
import React, { Fragment, useContext } from 'react';
import './Theme.css';
import { ThemeContext } from '../../Context/ThemeContext';
import { UserNameContext } from '../../Context/UserNameContext';
const Theme = () => {
const { theme, setTheme } = useContext(ThemeContext);
const { userName, setUserName } = useContext(UserNameContext);
const changeTheme = () => {
// Toggle between 'light' and 'dark' theme
setTheme(theme === 'light' ? 'dark' : 'light');
};
return (
<Fragment>
<header className={`${theme}`}>
<nav>
<div className="logo">BrainTech</div>
<ul>
<li>Home</li>
<li>Products</li>
<li>About</li>
<li>Contact</li>
</ul>
<button onClick={changeTheme}>🌙</button>
</nav>
</header>
<div className={`hero ${theme}`}>
<h1>Hello {userName}</h1>
<h1>Welcome to our Technology Company</h1>
<p>We provide high quality tech solutions for your business.</p>
</div>
</Fragment>
);
};
export default Theme
userName ile alakalı context kullanımları Theme.jsx içinde aşağıdaki gibi.
import { UserNameContext } from '../../Context/UserNameContext';
const { userName, setUserName } = useContext(UserNameContext);
<div className={`hero ${theme}`}>
<h1>Hello {userName}</h1>
<h1>Welcome to our Technology Company</h1>
<p>We provide high quality tech solutions for your business.</p>
</div>
Birden fazla context kullanıldığında aşağıdaki gibi içe içe sarmalama yapılır. En altta ana component yani App kalır.
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { ThemeProvider } from './Context/ThemeContext';
import { UserNameProvider } from './Context/UserNameContext';
const root = document.getElementById('root');
ReactDOM.createRoot(root).render(
<ThemeProvider>
<UserNameProvider>
<App />
</UserNameProvider>
</ThemeProvider>
);
Başarılı şekilde işlemim gerçekleşti.
Bir sonraki yazımda görüşmek üzere.
Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…
Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…
Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…
Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…
Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…
9 Haziran Pazartesi günü Aydın’daki sürecimiz bitti ve Antalya yolculuğumuz başladı. Saat 11 gibi yola…