Hice una lista plana y un botón de edición que puede abrir un modal a una entrada de texto y rastrear la clave del elemento específico. ¿Cómo actualizo este elemento en Flatlist con la entrada de texto diferente? Intenté hacer algo con setJournal pero no sé cómo devolverlo con la entrada editada.
export default function HomeScreen({ navigation }) { const [journal, setJournal] = useState([ { date: "12-dec22", entry: "good day", key: "1" }, { date: "12-dec22", entry: "bad day", key: "2" }, ]); const [editModal, setEditModal] = useState(false); const handleEditPress = (key) => { const currentJournal = journal.find((journn) => { return journn.key === key; }); setEditModal(true); console.log(key); }; const updateEntry = (key, entry) => { if (journal.key === key) { setJournal((currentJournal) => { return [entry, ...currentJournal]; }); } else {} journal = journal.map((journn) => journn.key === key ? { ...journn, ...updateEntry } : journn ); }; return ( <View> <Modal visible={editModal}> <TextInput onChangeText={() => updateEntry()} /> <MaterialIcons name="close" onPress={() => setEditModal(false)} /> </Modal> <View> <MaterialIcons onPress={() => setModalOpen(true)}/> <MaterialIcons onPress={() => deleteAll()} /> </View> <FlatList data={journal} renderItem={({ item }) => ( <View style={styles.flatlistView}> <TouchableOpacity> <View> <MaterialIcons onPress={() => handleEditPress(item.key)}/> </View> </TouchableOpacity> </View> )} /> </View> ); }const handleEditPress = (editedField, itemKey)=>{
journal.filter((currentItem.key)=>{(currentItem.key) === itemKey})).text = editedField
setDiario(diario) }