From ebeec2a295875611194f0243357de97c62666920 Mon Sep 17 00:00:00 2001 From: xfy Date: Wed, 8 Jul 2026 15:42:44 +0800 Subject: [PATCH] fix(comments): resolve reactivity dependency tracking in CommentSection hooks --- src/components/comments/section.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/comments/section.rs b/src/components/comments/section.rs index 3565616..d3b5c4e 100644 --- a/src/components/comments/section.rs +++ b/src/components/comments/section.rs @@ -57,9 +57,9 @@ pub fn CommentSection(post_id: i32) -> Element { // 轮询待审核评论状态,已处理(非 pending)的评论从本地移除 use_future(move || { - let mut pending = ctx.pending_comments; + let pending_val = ctx.pending_comments.read().clone(); async move { - let ids: Vec = pending().iter().map(|c| c.id).collect(); + let ids: Vec = pending_val.iter().map(|c| c.id).collect(); if ids.is_empty() { return; } @@ -72,7 +72,7 @@ pub fn CommentSection(post_id: i32) -> Element { .collect(); if !to_remove.is_empty() { comment_storage::remove_pending_ids(post_id, &to_remove); - pending.write().retain(|c| !to_remove.contains(&c.id)); + ctx.pending_comments.write().retain(|c| !to_remove.contains(&c.id)); } } Err(_e) => { @@ -83,9 +83,11 @@ pub fn CommentSection(post_id: i32) -> Element { }); // 评论数据资源,refresh_trigger 变化时自动重新加载 - let comments_resource = use_resource(move || async move { + let comments_resource = use_resource(move || { let _ = (ctx.refresh_trigger)(); - get_comments(post_id).await + async move { + get_comments(post_id).await + } }); let data = comments_resource.read();