CodeBlanks Logo Icon CodeBlanks

Event parametre

Olay işleyici parametrelerini öğrenirsin.

Olay nesnesi

Olay işleyiciler bir event parametresi alır. Bu nesne, olay hakkında bilgi taşır: dokunma konumu, hedef öğe, zaman damgası gibi.

Örneğin onPress={'{(event) => console.log(event)}'}. Burada event, React Native'nin gönderdiği olay nesnesidir. İçinde nativeEvent adlı bir alan vardır; gerçek platform verisi oradadır.

Yaygın kullanım: event.nativeEvent.locationX dokunmanın yatay konumunu verir. pageY dokunmanın sayfadaki dikey konumudur. Bunlar çizim uygulamaları ya da özel hareketler için kullanışlıdır.

event parametresini kullanmak

Olay işleyici yazarken parametre adı serbesttir; yaygın seçim event veya e'dir. Önemli olan prop'a fonksiyonun parametre alacak biçimde yazılmasıdır.

Yanlış: onPress={'{handlePress}'} — burada handlePress parametre alıyor olsa bile ok fonksiyonu yerine doğrudan referans kullanılmış. Bu çalışır ama parametre açıkça görünmez.

Açık biçim: onPress={'{(event) => handlePress(event)}'}. Bu, handlePress'in event aldığını gösterir. Karmaşık işlerde açık yazım kodu daha okunabilir kılar.

Uygulama Dokunma konumunu yaz

Bir App bileşeni yaz. <TouchableOpacity> içinde <Text>Dokun</Text> göster. onPress işleyicisi event alıp console.log(event.nativeEvent.locationX) yapsın. App fonksiyonunu dışa aktar.

Başlangıç kodu

App.js
import { TouchableOpacity, Text } from 'react-native';

// dokunma konumunu buraya yaz

Örnek çözüm

App.js
function App() {
  return (
    <TouchableOpacity onPress={(event) => console.log(event.nativeEvent.locationX)}>
      <Text>Dokun</Text>
    </TouchableOpacity>
  );
}
export default App;

Soru ve cevaplar

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

1 Olay parçalarını eşle

Kavram Anlamı
event Olay nesnesi
nativeEvent Yerel platform verisi
locationX Yatay dokunma konumu
pageY Dikey sayfa konumu

2 onPress'e event parametresi nasıl verilir?

  • onPress={(event) => ...}
  • onPress={event} Doğru cevap
  • onPress={event()}
  • onPress=event

Açıklama: ok fonksiyonu içinde event parametresi alınır.

3 event parametresini ekle

Soru
import { TouchableOpacity, Text } from 'react-native';

function App() {
  return (
    <TouchableOpacity onPress={(____) => console.log(event.nativeEvent.locationX)}>
      <Text>Koordinat</Text>
    </TouchableOpacity>
  );
}
Cevap
import { TouchableOpacity, Text } from 'react-native';

function App() {
  return (
    <TouchableOpacity onPress={(event) => console.log(event.nativeEvent.locationX)}>
      <Text>Koordinat</Text>
    </TouchableOpacity>
  );
}

Açıklama: event parametresi nativeEvent'i taşır.

Başlangıç bölümündeki tüm dersler