const change = (e) => { console.log(e) //Firebase.database().ref(`userSubject/${subjectTaken.user}/${subjectTaken.id}/topics/${name}/`).update({"completed": !completed}) } return ( <View style={styles.page} > <Header type="dark-profile" title={subjectTaken.name} desc="Here is your progress. You can do this!" onPress={() => navigation.goBack()}/> <View> {topic.map(item => { if(item.completed === true) { return <TodoBox text={item.lesson} type={true} onPress={() => console.log("YEY")} /> } else { const name = item.lesson return ( <TodoBox text={item.lesson} type={false} onPress={(name) => {this.change(item.lesson)}} /> ) } })} </View> </View> ) }Me pregunto cómo puedo pasar la variable item.lesson a la función que inserté en onpress... log me da indefinido por qué
En este fragmento, está pasando el name como parámetro, por lo que la función no conoce item .
Además, parece que la función onChange requiere un event como parámetro. Entonces, cambiando la siguiente línea:
<TodoBox text={item.lesson} type={false} onPress={(name) => {this.change(item.lesson)}} />a esto:
<TodoBox text={item.lesson} type={false} onPress={(e) => {this.change(e)}} />podría arreglar esto.
Finalmente, intente con el código completo si es posible.