Hago una función con 12 argumentos en la pantalla principal y llamo a esa función desde el componente secundario y paso los parámetros de un elemento secundario, pero no funciona y vuelvo a mostrar la pantalla por tiempo ilimitado.
Por ejemplo:
// This is my Array: const [DataArray, setDataArray] = useState([ { title: 'Saudi Arabia', guest: '2 Guests', description: 'This is my Description', location: 'Riadh, KSA', estimateCost: '$1000', duration: '1 Month', groupSize: 'small', hostedIn: 'Michigan', includes: '2 Return Tickets', date: '12 July 2022', notes: 'N/A', locationDetails: 'House # 12, Makhdoom street, Al-Riadh, KSA', }, ]);Función de pantalla principal:
// Add cards function. const AddCard = (a, b, c, d, e, f, g, h, i, j, k, l) => { let array = DataArray; array.unshift({ title: a, guest: b, description: c, location: d, estimateCost: e, duration: f, groupSize: g, hostedIn: h, includes: i, date: j, notes: k, locationDetails: l }); setDataArray(array); modalVisibleOff; };Componente secundario desde donde llamo a la función
<TouchableOpacity onPress={AddCard( Title, Guest, Description, Location, EstimateCost, Duration, GroupSize, HostedIn, Includes, Date, Notes, LocationDetails, )} style={styles.Button}> <Text style={styles.ButtonText}>Submit</Text> </TouchableOpacity>En su componente secundario, está llamando a la función AddCart inmediatamente. Aquí está el código actualizado
<TouchableOpacity onPress={() => AddCard( Title, Guest, Description, Location, EstimateCost, Duration, GroupSize, HostedIn, Includes, Date, Notes, LocationDetails, )} style={styles.Button}> <Text style={styles.ButtonText}>Submit</Text> </TouchableOpacity>