You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-Query useQuery成功时Chakra UI Toast不显示的问题求助

解决React Query mutation成功时Chakra UI Toast不显示的问题

以下是几个排查和解决方向:

1. 确认组件在ChakraProvider包裹范围内

Chakra UI的useToast钩子必须在ChakraProvider的上下文环境中才能正常工作。检查你的根组件是否已用ChakraProvider包裹,示例代码如下:

import { ChakraProvider } from "@chakra-ui/react";
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";

const root = ReactDOM.createRoot(document.getElementById("root")!);
root.render(
  <ChakraProvider>
    <App />
  </ChakraProvider>
);

如果useBookmark所在的组件不在该包裹范围内,Toast将无法渲染。

2. 验证mutation确实进入了onSuccess回调

先确认deleteBookmark请求是否真的成功:

  • 打开浏览器控制台,查看console.log(data)是否有输出。如果没有,说明请求未成功,需先排查deleteBookmark接口的问题,比如网络请求状态、后端返回是否符合成功逻辑。
  • 如果请求成功但控制台无输出,检查mutation配置是否正确,是否有其他逻辑拦截了onSuccess的执行。

3. 调整Toast的配置参数

有时Toast可能因位置或样式问题被遮挡,你可以显式指定position参数确保Toast显示在可视区域:

toast({
  title: "Bookmark deleted",
  status: "success",
  duration: 3000,
  isClosable: true,
  position: "top-right" // 可选值包括top-left、bottom-right、bottom-left等
});

4. 简化Toast配置测试

如果项目中存在自定义样式或多Toast调用冲突,可暂时简化Toast配置进行测试:

toast("Bookmark deleted successfully");

若基础调用能正常显示,再逐步添加status、duration等参数排查问题。

5. 检查版本兼容性

确认你使用的react-query(或@tanstack/react-query)与@chakra-ui/react版本是否兼容,避免因版本不匹配导致钩子异常。可尝试更新到最新稳定版本后再测试。

内容的提问来源于stack exchange,提问作者Abby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:20:19