Derecha. He estado buscando en Google durante días y parece que no puedo encontrar un ejemplo que funcione y que entienda.
Actualmente tengo tres componentes, ButtonComponent, SecondButton y TextComponent.
Ya lo tengo de tal manera que tocar el botón puede actualizar el estado y, por lo tanto, cambiar el texto en TextComponent (si configuro setState en la cadena de texto en la línea 39).
¿Cómo puedo cambiarlo para que cambie a una cadena de texto que puedo configurar desde el botón mismo en lugar de la función activada por el botón, de modo que SecondButton pueda activar la misma función que Button, pero actualice el texto a algo diferente? .
Me imagino que debe ser un pequeño ajuste en onPress. pero todo lo que intento sigue quejándose de que los objetos y las cosas no están definidos.
Gracias.
import { setStatusBarNetworkActivityIndicatorVisible, StatusBar } from 'expo-status-bar'; import React, { useState, useEffect } from 'react'; import { StyleSheet, Text, View, Button } from 'react-native'; function ButtonComponent({changeText}) { console.log(`2. ${changeText} from inside Button Component`) return( <Button title="change text" onPress={changeText} /> ) } function SecondButton({changeText}){ return( <Button title="change text again" onPress={changeText} /> ) } function TextComponent({text}) { console.log(`3. ${text} from inside Text Component`) // return ( <View> <Text style={styles.text}>{text}</Text> </View> ) } export default function App() { console.log('1 .start') const [text, setText] = useState('default text'); // declared in the screen const changeText = ({newtext}) => { setText(newtext) console.log(`4. ${text} just after changeText`) } return( <View style={styles.container}> <ButtonComponent changeText={changeText}/> <SecondButton changeText={changeText}/> <TextComponent text={text}/> </View> ) } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, text: { color: 'red', } });function SecondButton({changeText}){ return( <Button title="change text again" onPress={() => changeText( { newtext: "different string" })} /> ) }