أحمد عبد الله2 نشر 15 أغسطس 2021 أرسل تقرير مشاركة نشر 15 أغسطس 2021 import React, {useState, FC} from 'react'; import {StyleSheet, Image, Text, TouchableOpacity} from 'react-native'; import Icon from 'react-native-vector-icons/MaterialIcons'; import {phoneHeight, phoneWidth} from '../../theme/Dimensions'; import {MyColors} from '../../theme/MyColos'; import {MyFonts} from '../../theme/MyFonts'; interface MainCard { title: string; price: number; image: any; onPress?: () => void; onFavPress?: () => void; } const MainCard: FC<MainCard> = ({image, title, price, onPress, onFavPress}) => { const [isFav, setIsFav] = useState(false); return ( <TouchableOpacity onPress={onPress} style={styles.container}> <TouchableOpacity // onPress={() => setIsFav(!isFav)} onPress={[onFavPress, () => setIsFav(!isFav)]} style={styles.iconContainer}> {isFav ? ( <Icon name="favorite-border" size={phoneWidth * 0.05} /> ) : ( <Icon name="favorite" size={phoneWidth * 0.05} color="red" /> )} </TouchableOpacity> <Image style={styles.imageBackground} source={image} resizeMode="cover" /> <Text numberOfLines={2} style={styles.title}> {title} </Text> <Text style={styles.price}>{price} SAR</Text> </TouchableOpacity> ); }; export default MainCard; هدا هو كودى والمشكلة عندى فى هدا السطر onPress={[onFavPress, () => setIsFav(!isFav)]} فى الاول كنت بعملها هكدا onPress={() => setIsFav(!isFav)} لكنى اريد ان اضيف خاصية جديدة وهو انه عندما استدعيه اضع فيه اى argment انا اريده .. هل هناك حل ام لا ؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Salah Eddin Beriani2 نشر 16 أغسطس 2021 أرسل تقرير مشاركة نشر 16 أغسطس 2021 حبذا لو استخدمت دالة خارجية ثم قمت بعملك هناك وتمرير ما تريد const MainCard = ({ image, title, price, onPress, onFavPress }) => { const [isFav, setIsFav] = useState(false); const onPress1 = (params) => {//يمكنك تمرير ما تريد هنا setIsFav(!isFav); //يمكنك التعامل هنا } return ( <TouchableOpacity onPress={onPress} style={styles.container}> <TouchableOpacity // onPress={() => setIsFav(!isFav)} onPress={onPress1} style={styles.iconContainer} > {isFav ? ( <Icon name="favorite-border" size={phoneWidth * 0.05} /> ) : ( <Icon name="favorite" size={phoneWidth * 0.05} color="red" /> )} </TouchableOpacity> <Image style={styles.imageBackground} source={image} resizeMode="cover" /> <Text numberOfLines={2} style={styles.title}> {title} </Text> <Text style={styles.price}>{price} SAR</Text> </TouchableOpacity> ); }; اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Hassan Hedr نشر 15 أغسطس 2021 أرسل تقرير مشاركة نشر 15 أغسطس 2021 (معدل) يمكنك تضمين التابع كالتالي onPress = {() => { setIsFav(!isFav) onFavPress(/* تريده argument مرر أي */) }} تم التعديل في 15 أغسطس 2021 بواسطة Hassan Hedr اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
أحمد عبد الله2
هدا هو كودى والمشكلة عندى فى هدا السطر
onPress={[onFavPress, () => setIsFav(!isFav)]}
فى الاول كنت بعملها هكدا onPress={() => setIsFav(!isFav)}
لكنى اريد ان اضيف خاصية جديدة وهو انه عندما استدعيه اضع فيه اى argment انا اريده .. هل هناك حل ام لا ؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.