CodeBlanks Logo Icon CodeBlanks

Not ekleme

Not ekleme formu yazarsın.

Not ekleme formu

Bu derste kullanıcıdan yeni not alacak bir form kuracağız. İki TextInput kullanırız: biri başlık, diğeri içerik için. Her giriş value ve onChangeText ile bir state'e bağlanır.

Form çıktısını state'te tutarız: title ve body. Kullanıcı her yazdığında ilgili state güncellenir. Sonra bir butona basınca yeni notu setNotes ile ekleriz. Bu desen, React Native form ekranlarında karşına çıkacak temel desendir; kullanıcıdan veri alıp state'e aktarmanın standart yoludur.

Uygulama TextInput ile başlık al

NotesApp bileşenine iki yeni state ekle: title ve body (boş dize ile başlat). Bir TextInput ekle; value={title} ve onChangeText={setTitle} ile bağla. Bileşen <Text>Notlar</Text> döndürsün.

Başlangıç kodu

App.js
import { useState } from "react";
import { Text } from "react-native";

function NotesApp() {
  const [notes, setNotes] = useState([{ id: "1", title: "Alışveriş", body: "Süt, ekmek" }]);
  // title ve body için iki state daha ekle (boş dize ile başlat)
  // metin giriş bileşenini içe aktar ve bir tane ekle; title state'ine bağla

  return <Text>Notlar</Text>;
}

Örnek çözüm

App.js
import { useState } from "react";
import { Text, TextInput } from "react-native";

function NotesApp() {
  const [notes, setNotes] = useState([{ id: "1", title: "Alışveriş", body: "Süt, ekmek" }]);
  const [title, setTitle] = useState("");
  const [body, setBody] = useState("");
  return (
    <>
      <TextInput value={title} onChangeText={setTitle} />
      <Text>Notlar</Text>
    </>
  );
}

Form gönderimi

Kullanıcı bir not yazıp gönderdiğinde yeni notu state'e eklemen gerekir. setNotes([...notes, newNote]) deseniyle mevcut notların sonuna yeni notu eklersin. Yeni notun id'si benzersiz olmalı; Date.now().toString() sık kullanılan bir yöntemdir.

Ekledikten sonra formu temizlemek gerekir: setTitle("") ve setBody("") ile başlık ve içerik state'lerini boşaltırsın. Bu, kullanıcının bir sonraki notu temiz bir form ile yazmasını sağlar. Form gönderimi genelde bir butonun onPress'ine bağlanır; butona basıldığında ekleme fonksiyonu çağrılır.

Soru ve cevaplar

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

1 Yeni not ekle

Soru
setNotes([...notes, { id: Date.now().toString(), ____: title, body }]);
Cevap
setNotes([...notes, { id: Date.now().toString(), title: title, body }]);

Açıklama: title ile başlığı bağlarsın.

2 Yeni not eklerken ne kullanılır?

App.js
setNotes(/* ? */);
  • setNotes([...notes, newNote]) Doğru cevap
  • notes = notes.concat(newNote)
  • setNotes(notes + newNote)
  • notes.push(newNote)

Açıklama: setNotes([...notes, newNote]) ile yeni dizi oluşturulur.

3 Parçayı rolüne eşle

Kavram Anlamı
TextInput Başlık girişi
setTitle title'ı günceller
setNotes Notları günceller
Date.now() Benzersiz id üretir

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