Estoy tratando de agregar una entrada de competencia a mi base de datos de competencias en firebase pero recibo el error:
TypeError: undefined no es un objeto (evaluando 'route.params.id')
Aquí está mi código:
const AddEntry = ({route, navigation}) => { const id = route.params.id const [title, onChangeTitle] = React.useState('') const [image, setImage] = React.useState("/") const pickImage = async () => { // No permissions request is necessary for launching the image library let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.All, allowsEditing: true, aspect: [4, 3], quality: 1, }); console.log(result); if (!result.cancelled) { setImage(result.uri); } }; const AddEntry = async() => { let imageUrl = await handleImageUpload() addEntryToComp({title, imageUrl}, id) } //Image code here return( <View> <Text>Add Entry</Text> <Text>{id}</Text> <Button title='Upload Entry Image' color="red" onPress={pickImage}></Button> <Button title='Save' color="purple" onPress={AddEntry}></Button> </View> ) } export default AddEntry¿Algunas ideas?
Los parámetros se utilizan para pasar datos a la ruta colocándolos en un objeto como un segundo parámetro para la función de navegación.navegar.
Por ejemplo:
navigation.navigate('AddEntry', { id })... y luego puede acceder a los parámetros pasados desde route.params.
Más aquí: https://reactnavigation.org/docs/params/