CodeBlanks Logo Icon CodeBlanks

disabled

disabled prop ile buton devre dışı bırakmayı öğrenirsin.

disabled

Bazen bir düğmenin dokunulamaz olması gerekir; örneğin form geçersizken Gönder düğmesi inaktif kalmalıdır. disabled prop'u bunu sağlar: disabled={true} düğmeyi kapatır ve onPress çağrılmaz. Button, TouchableOpacity ve Pressable hepsi destekler.

Örnek: <Button title="Gönder" onPress={handleSend} disabled={!isValid} />. Burada isValid yanlışken düğme devre dışı kalır. Mantık genellikle form geçerliliğine, ağ isteğinin devam etmesine veya yetkiye bağlıdır. Devre dışı düğmeler genelde soluk görünür.

Koşullu devre dışı

Çoğu zaman disabled sabit true değil, bir koşula bağlıdır. Formun geçerliliği bir useState ile tutuluyorsa düğmeyi buna bağlarsın: disabled={!isValid}. Ağ isteği sürüyorsa disabled={loading} ile çift tıklamayı önlersin.

Bu kalıp çift gönderimi, geçersiz form gönderimini ve yetkisiz eylemleri engeller. disabled değeri bir JavaScript ifadesidir; doğru ya da yanlış dönen her şey olabilir. Önemli olan: düğmeyi kapatan koşul değiştiğinde bileşen yeniden render olur ve düğme otomatik açılır.

Uygulama Koşullu kapalı düğme yaz

Boş bileşeni tamamla. isValid adında bir useState tanımla (başlangıç false). handleSend işlevini tanımla. Dönüşte <Button title="Gönder" onPress={handleSend} disabled={!isValid} /> kullan.

Başlangıç kodu

App.js
import React from 'react';
import { Button } from 'react-native';

export default function SendButton() {
  // isValid state'ini ve handleSend işlevini ekle; Button döndür
  return null;
}

Örnek çözüm

App.js
import React from 'react';
import { Button } from 'react-native';

export default function SendButton() {
  const [isValid, setIsValid] = React.useState(false);
  const handleSend = () => {};
  return <Button title="Gönder" onPress={handleSend} disabled={!isValid} />;
}

Soru ve cevaplar

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

1 disabled prop'unu yaz

Soru
<Button title="Gönder" onPress={handleSend} ____={true} />
Cevap
<Button title="Gönder" onPress={handleSend} disabled={true} />

Açıklama: disabled={true} düğmeyi devre dışı bırakır.

2 Durumu davranışına eşle

Kavram Anlamı
disabled={true} Düğme kapalı
disabled={false} Düğme açık
disabled={!isValid} Form geçersizken kapalı
onPress Açıkken çağrılır

3 disabled={true} olan bir düğmede ne olur?

App.js
<Button title="Gönder" onPress={send} disabled={true} />
  • onPress çağrılmaz Doğru cevap
  • Düğme görünmez olur
  • Düğme kırmızı olur
  • Düğme yeniden boyutlanır

Açıklama: disabled düğmede onPress çağrılmaz.

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