更新
如果我将删除功能更改为:
ListView
一切正常。没有错误,UI会相应更新。
为什么我需要通过我的预订对象删除我的笔记?为什么我的领域不允许我直接删除我的Notes对象?
我的应用处理任务,其预订,其中包含备注。我正致力于删除笔记。
我的笔记以function deleteResNote(noteObj) {
realm.write(() => {
realm.delete(noteObj)
})
}
呈现。当点击单元格时,我将Note对象(Realm Object)传递给我的删除方法,并最终调用:
ListView
删除后,此方法会触发以下错误:
错误:访问已删除的Notes类型的对象
保存我的handleReservationNotes = taskId => {
let dataBlob = {}
let sectionIDs = []
let rowIDs = []
let reservations = []
const details = Tasks.getTask(taskId)
Object.values(details.reservations).forEach((reservation, i) => {
reservations.push({ id: reservation.id, lead: reservation.lead_name })
// manage our sections
sectionIDs.push(reservation.id)
dataBlob[reservation.id] = reservation.lead_name
// manage our rows
rowIDs[i] = []
Object.values(reservation.notes).forEach((note, j) => {
rowIDs[i].push(j)
dataBlob[`${reservation.id}:${j}`] = note
})
})
this.setState({
dataSource: this.state.dataSource.cloneWithRowsAndSections(dataBlob, sectionIDs, rowIDs),
reservations,
selectedReservationId:reservations[0].id,
})
}
的组件被设置为侦听领域更改事件,并且再次使用用于第一次渲染的相同方法来重新呈现更新的注释。我认为指出在此方法中,通过父Task对象访问Notes非常重要。
{{1}}
似乎我正在从数据库中正确删除注释,但我的预订对象似乎仍然坚持它。
如何在更新所有适当的关系时成功删除注意?