|
@@ -609,7 +609,7 @@ impl ScopeState {
|
|
|
|
|
|
/// Create a subscription that schedules a future render for the reference component
|
|
|
///
|
|
|
- /// ## Notice: you should prefer using prepare_update and get_scope_id
|
|
|
+ /// ## Notice: you should prefer using schedule_update_any and scope_id
|
|
|
pub fn schedule_update(&self) -> Arc<dyn Fn() + Send + Sync + 'static> {
|
|
|
let (chan, id) = (self.tasks.sender.clone(), self.scope_id());
|
|
|
Arc::new(move || {
|
|
@@ -1000,12 +1000,11 @@ impl TaskQueue {
|
|
|
fn remove(&self, id: TaskId) {
|
|
|
if let Ok(mut tasks) = self.tasks.try_borrow_mut() {
|
|
|
let _ = tasks.remove(&id);
|
|
|
+ if let Some(task_map) = self.task_map.borrow_mut().get_mut(&id.scope) {
|
|
|
+ task_map.remove(&id);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
// the task map is still around, but it'll be removed when the scope is unmounted
|
|
|
- if let Some(task_map) = self.task_map.borrow_mut().get_mut(&id.scope) {
|
|
|
- task_map.remove(&id);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
pub(crate) fn has_tasks(&self) -> bool {
|