Estoy creando una aplicación de notas, ahora estoy bien con la obtención de datos y la adición de datos, pero cuando trato de eliminar datos, funciona muy raro, si tengo 5 elementos, después de eliminar por primera vez, no se aplicará, después de eliminar el siguiente elemento, eliminará el anterior, por ejemplo, tengo 5 elementos, luego presiono eliminar un elemento, no eliminó nada, pero si presiono eliminar otro elemento, elimina el último, no sé por qué no funciono aqui esta el codigo
Aquí está el código reductor de redux:
const noteReducer = createSlice({ name: "note", initialState: NoteList, reducers: { removeNote: (state, action: PayloadAction<NoteI>) => { return state.filter((item) => item.id !== action.payload.id); } } });
Aquí la estructura de la nota en firestore será así, contiene
{ userName:"blabla" email:"blabla@gmail.com" note:[] <== an array of object note }
Aquí está la función que uso para eliminar la nota:
export default function NoteList(props: noteListI) { const { title, note, id, date } = props; const dispatch = useDispatch(); const userInfo: user = useSelector( (state: RootState) => state.persistedReducer.firebase.userInfomation ); const data = useSelector((state: RootState) => state.persistedReducer.note); const updateDeletedNoteFirebase = async () => { // deleteFuntion await firestore() .collection("Users") .doc(userInfo.email) .update({ note: data }) .then(() => { console.log("delete success"); }); }; const removeSelectedNote = () => {. //delete LocalItem dispatch(removeNote({ id: id })); }; return ( <View> <TouchableOpacity onLongPress={() => { removeSelectedNote(); updateDeletedNoteFirebase(); console.log("data",data); //console the same }} > <Note /> </TouchableOpacity> </View> ); }
Pero el problema es que cuando registro los datos, siguen siendo los mismos.
Aquí está el gif para mostrar lo que está pasando aquí
Todavía funciona, pero no sé por qué solo funciona cuando presiono eliminar nuevamente, si actualizo, seguirá siendo el mismo, pero si elimino dos veces, actualizo, eliminará el elemento anterior, no dos.
Ayuda por favor, muchas gracias
Tenga en cuenta que elimino todo el código no relacionado y mantengo el relacionado