1

执行两次快速“切换切换”会导致闪烁,因为 React-Native Switch 在 Firestore DB 完成第一次切换更新之前更新了第二个切换元素的 UI。

我有一组任务,其中每个任务都有以下架构:

task : {
 shared: {
   sample_user_id_1: true,
   sample_user_id_2: false
 }
}

因为 Firestore 返回一个完整的文档快照(而不仅仅是更新的文档的特定部分),我在这里看到两个解决方案来消除闪烁:1)只调度和管道更新的更改,基本上只监听部分一次文档(发送独立于 Redux-Firestore 的状态更改),例如:

if(newValue.shared[user_id_1] !== oldState.shared[user_id_1])
    dispatch(manualShareUpdate(user_id_1));

该解决方案似乎不可扩展。

2)改变数据结构,使每个“共享”位独立于其他共享位存储,例如。

task : {
 id: task_1
}

每个任务的新“task_shared”集合,共享对

task_shared : {
  task_id: sample_task_id
  user_id: sample_user_id,
  shared: true
}
4

0 回答 0