Quiero pasar un valor de mi función principal a mi función secundaria. pero no se que hacer por favor ayuda consejo
El lenguaje que uso es reaccionar nativo. Quiero enviar datos de búsqueda a la función principal
este es mi codigo
Función principal
export default function Home() { return ( <View> <HeaderHome Upload={Upload} Uri={Uri} /> </View> ); }Segunda Función
export default function HeaderHome({ Upload, Uri }) { const navigation = useNavigation(); const [showScrollView, setShowScrollView] = useState(false); const [search, setSearch] = useState(''); const onPress = () => { setShowScrollView(!showScrollView); }; console.log(search); return ( <View> {showScrollView ? ( <View> <TextInput placeholder="Search..." placeholderTextColor="#000" onChangeText={(e) => setSearch(e)} /> <TouchableOpacity onPress={() => onPress()}> <Text>Cancel</Text> </TouchableOpacity> </View> ) : ( <View> <View> <Ionicons name="md-search" style={styles.iconSearch} onPress={() => onPress()} /> <Ionicons name="person-circle" onPress={() => navigation.navigate('Menu', { Upload, Uri })} /> </View> </View> )} </View> ); }Cree una función de devolución de llamada que pase como accesorio de Home a HeaderHome . Esto podría verse de la siguiente manera.
export default function Home() { const [search, setSearch] = useState('') return ( <View> <HeaderHome setHomeSearch={setSearch} Upload={Upload} Uri={Uri} /> </View> ); } En HeaderHome , puede llamar a esa función en la función onPress y configurar la search de estado en el componente Home de la siguiente manera.
export default function HeaderHome({ Upload, Uri, setHomeSearch }) { const navigation = useNavigation(); const [showScrollView, setShowScrollView] = useState(false); const [search, setSearch] = useState(''); const onPress = () => { setShowScrollView(!showScrollView); }; console.log(search); const onSearchSet = (text) => { setSearch(text) setHomeSearch(text) } return ( <View> {showScrollView ? ( <View> <TextInput placeholder="Search..." placeholderTextColor="#000" onChangeText={(e) => onSearchSet(e)} /> <TouchableOpacity onPress={() => onPress()}> <Text>Cancel</Text> </TouchableOpacity> </View> ) : ( <View> <View> <Ionicons name="md-search" style={styles.iconSearch} onPress={() => onPress()} /> <Ionicons name="person-circle" onPress={() => navigation.navigate('Menu', { Upload, Uri })} /> </View> </View> )} </View> ); }