En aquest tema, aprendrem com gestionar esdeveniments en React Native. Els esdeveniments són accions o successos que tenen lloc en l'aplicació, com ara clics de botons, canvis en els camps de text, desplaçaments, etc. React Native proporciona una manera senzilla i eficient de gestionar aquests esdeveniments.
Conceptes clau
- Esdeveniments en React Native: Els esdeveniments són accions que l'usuari realitza en l'aplicació, com ara tocar un botó o escriure en un camp de text.
- Gestors d'esdeveniments: Funcions que s'executen en resposta a un esdeveniment.
- Sintaxi de gestors d'esdeveniments: Com assignar gestors d'esdeveniments als components.
Exemples pràctics
Exemple 1: Gestió d'un esdeveniment de clic en un botó
import React from 'react'; import { View, Button, Alert } from 'react-native'; const App = () => { const handleButtonClick = () => { Alert.alert('Botó clicat!', 'Has clicat el botó.'); }; return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> <Button title="Clica'm" onPress={handleButtonClick} /> </View> ); }; export default App;
Explicació:
- Importem els components necessaris de
react-native
. - Definim una funció
handleButtonClick
que es crida quan es clica el botó. - Utilitzem el component
Button
i assignem la funcióhandleButtonClick
a la propietatonPress
.
Exemple 2: Gestió d'un esdeveniment de canvi en un TextInput
import React, { useState } from 'react'; import { View, TextInput, Text } from 'react-native'; const App = () => { const [text, setText] = useState(''); const handleTextChange = (newText) => { setText(newText); }; return ( <View style={{ padding: 20 }}> <TextInput style={{ height: 40, borderColor: 'gray', borderWidth: 1 }} placeholder="Escriu aquí" onChangeText={handleTextChange} value={text} /> <Text style={{ padding: 10, fontSize: 42 }}> {text.split(' ').map((word) => word && '🍕').join(' ')} </Text> </View> ); }; export default App;
Explicació:
- Utilitzem el hook
useState
per gestionar l'estat del text. - Definim una funció
handleTextChange
que actualitza l'estat del text. - Utilitzem el component
TextInput
i assignem la funcióhandleTextChange
a la propietatonChangeText
.
Exercicis pràctics
Exercici 1: Botó que canvia el text
Descripció: Crea una aplicació que mostri un text i un botó. Quan es clica el botó, el text ha de canviar.
Solució:
import React, { useState } from 'react'; import { View, Text, Button } from 'react-native'; const App = () => { const [text, setText] = useState('Text inicial'); const handleButtonClick = () => { setText('Text canviat!'); }; return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> <Text style={{ fontSize: 24, marginBottom: 20 }}>{text}</Text> <Button title="Canvia el text" onPress={handleButtonClick} /> </View> ); }; export default App;
Exercici 2: TextInput que mostra el text en temps real
Descripció:
Crea una aplicació amb un TextInput
i un Text
. El Text
ha de mostrar el contingut del TextInput
en temps real.
Solució:
import React, { useState } from 'react'; import { View, TextInput, Text } from 'react-native'; const App = () => { const [text, setText] = useState(''); const handleTextChange = (newText) => { setText(newText); }; return ( <View style={{ padding: 20 }}> <TextInput style={{ height: 40, borderColor: 'gray', borderWidth: 1 }} placeholder="Escriu aquí" onChangeText={handleTextChange} value={text} /> <Text style={{ padding: 10, fontSize: 24 }}>{text}</Text> </View> ); }; export default App;
Errors comuns i consells
- No assignar correctament el gestor d'esdeveniments: Assegura't que la funció del gestor d'esdeveniments estigui assignada correctament a la propietat de l'esdeveniment (per exemple,
onPress
per a botons). - No actualitzar l'estat correctament: Quan utilitzis
useState
, assegura't que estàs actualitzant l'estat correctament dins del gestor d'esdeveniments. - Oblidar passar la funció com a referència: No cridis la funció directament en la propietat de l'esdeveniment (per exemple,
onPress={handleButtonClick()}
), sinó passa la referència de la funció (per exemple,onPress={handleButtonClick}
).
Conclusió
En aquesta secció, hem après com gestionar esdeveniments en React Native. Hem vist exemples pràctics de com gestionar esdeveniments de clic en botons i canvis en camps de text. També hem practicat amb exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar cap a la renderització condicional en el següent tema.
Curs de React Native
Mòdul 1: Introducció a React Native
- Què és React Native?
- Configuració de l'entorn de desenvolupament
- Aplicació Hello World
- Comprendre JSX
- Components i Props
Mòdul 2: Components bàsics i estilització
- Visió general dels components bàsics
- Text, View i Image
- Estilització amb Flexbox
- Gestió de l'entrada de l'usuari
- ScrollView i ListView
Mòdul 3: Estat i cicle de vida
- Mètodes d'estat i cicle de vida
- Gestió d'esdeveniments
- Renderització condicional
- Llistes i claus
- Formularis i components controlats
Mòdul 4: Navegació
- Introducció a React Navigation
- Stack Navigator
- Tab Navigator
- Drawer Navigator
- Passar paràmetres a les rutes
Mòdul 5: Xarxes i dades
- Obtenir dades amb Fetch API
- Utilitzar Axios per a sol·licituds HTTP
- Gestió d'errors de xarxa
- AsyncStorage per a dades locals
- Integració amb APIs REST
Mòdul 6: Conceptes avançats
Mòdul 7: Desplegament i publicació
- Construcció per a iOS
- Construcció per a Android
- Publicació a l'App Store
- Publicació a Google Play
- Integració i lliurament continus