如何让我的 React Native Flatlist 在领域数据更新时重新加载?
How do I get my React Native Flatlist to reload on realm data updates?
我正在使用从我的领域数据库中获取的数组来呈现任务的平面列表,但是当我更改数据库中的内容时,除非我离开页面,否则列表不会重新呈现。而且我不确定如何指示它,如果我一直在使用 redux,我会将其状态作为额外数据,但在这里我不确定该怎么做。
一些代码片段:
async componentWillMount() {
try {
let realm = await Realm.open({
schema: [TaskSchema]
});
this.setState({ realm });
} catch (err) {
console.log(err);
console.log('we screwed boys');
}
如何在不离开页面的情况下更新数据库:
onDeleteClick = () => {
const realm = this.state.realm;
realm.write(() => {
let completedTasks = this.state.realm.objects('Task').filtered('isComplete = true');
realm.delete(completedTasks);
});
render() 中的平面列表声明:
let tasks = null;
if (this.state.realm) {
tasks = this.state.realm.objects('Task');
}
return (
<View style={styles.backgroundStyle}>
<FlatList
data={tasks}
renderItem={this.renderTasks}
keyExtractor={(item) => item.title}
/>
编辑:注意 - 它确实从数据库中正确删除了项目,列表只是不知道如何重新呈现,我不知道如何指示它
你能不能在删除任务后再次尝试设置领域对象然后它应该重新呈现列表
onDeleteClick = () => {
const realm = this.state.realm;
realm.write(() => {
let completedTasks = this.state.realm
.objects("Task")
.filtered("isComplete = true");
realm.delete(completedTasks);
this.setState({
realm, // set realm object using setState to re render the list.
});
});
};
我正在使用从我的领域数据库中获取的数组来呈现任务的平面列表,但是当我更改数据库中的内容时,除非我离开页面,否则列表不会重新呈现。而且我不确定如何指示它,如果我一直在使用 redux,我会将其状态作为额外数据,但在这里我不确定该怎么做。
一些代码片段:
async componentWillMount() {
try {
let realm = await Realm.open({
schema: [TaskSchema]
});
this.setState({ realm });
} catch (err) {
console.log(err);
console.log('we screwed boys');
}
如何在不离开页面的情况下更新数据库:
onDeleteClick = () => {
const realm = this.state.realm;
realm.write(() => {
let completedTasks = this.state.realm.objects('Task').filtered('isComplete = true');
realm.delete(completedTasks);
});
render() 中的平面列表声明:
let tasks = null;
if (this.state.realm) {
tasks = this.state.realm.objects('Task');
}
return (
<View style={styles.backgroundStyle}>
<FlatList
data={tasks}
renderItem={this.renderTasks}
keyExtractor={(item) => item.title}
/>
编辑:注意 - 它确实从数据库中正确删除了项目,列表只是不知道如何重新呈现,我不知道如何指示它
你能不能在删除任务后再次尝试设置领域对象然后它应该重新呈现列表
onDeleteClick = () => {
const realm = this.state.realm;
realm.write(() => {
let completedTasks = this.state.realm
.objects("Task")
.filtered("isComplete = true");
realm.delete(completedTasks);
this.setState({
realm, // set realm object using setState to re render the list.
});
});
};