Default Props

text prop umuz var, ve bu prop a herhangi bir ifade gönderilmediğini varsayalım, gönderilmediği için bir şey gösterilmez. Ama belli propları zorunlu kılabiliriz. bunun için isRequired ifadesini kullanılır.

import React from "react";
import { StyleSheet } from "react-native";
import { View, Text } from "react-native";

import PropTypes from "prop-types";

const Title = ({ isVisible, text, color, numberOfLines }) => {
  return (
    <>
      <View>
        {isVisible && (
          <Text style={[styles.title, { color: color }]}>
            {numberOfLines} - {text}
          </Text>
        )}
      </View>
    </>
  );
};

const styles = StyleSheet.create({
  title: {
    fontSize: 30,
    fontWeight: 700,
  },
});

Title.propTypes = {
  text: PropTypes.string.isRequired,
  number: PropTypes.number,
  color: PropTypes.string,
  isVisible: PropTypes.bool,
};

Title.defaultProps = {
  text: "Varsayılan Başlık",
  isVisible: true,
  color: "blue",
};

export default Title;
import { StyleSheet, View } from "react-native";

import Title from "./src/components/Title";
import User from "./src/components/User";
import Header from "./src/components/Header";
import Users from "./src/components/Users";

const App = () => {
  return (
    <View style={styles.container}>
      <Header />
      <Title number={1} numberOfLines={1} isVisible={true} />
      <Title text="React" color="blue" number={2} numberOfLines={2} />
      <Title text="JavaScript" color="green" number={3} numberOfLines={3} />

      <User data={{ id: 1, name: "Mehmet" }} />

      <Users data={["Ahmer", "Mehmet", "Ayşe", "Fatma"]} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default App;

text ifadesi gönderilmese bile varsayılan olarak belirlediğim ifade ekrana basılacaktır.

default prop tanımlarını belirleyerek uyarı ve hataların önüne geçmiş oluruz.

İnternet sitesi https://abdullahsarihan.com
Yazı oluşturuldu 85

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.