React-toastify 显示多个 toast

2024-03-10

我正在构建一个包含多个组件的 React 应用程序,并且我正在使用其中至少一半的组件React-notify除了一个之外,几乎所有这些都可以正常工作。在这个中,当我触发 toast 时,我会得到四个 toast,一个在另一个后面,但我相信它们不是不同的 toast,因为它们具有相同的 ID。

我找到了这个线程https://github.com/fkhadra/react-toastify/issues/182 https://github.com/fkhadra/react-toastify/issues/182,这里用户遇到了与我相同的问题,唯一的例外是我没有设置autoclose,他甚至提供了一张显示问题的 gif:

https://i.stack.imgur.com/SiqRo.jpg https://i.stack.imgur.com/SiqRo.jpg

根据此线程的解决方案将删除所有<ToastContainer />组件并将其呈现在应用程序根目录中,在我的例子中是App.js。我这样做了,但是吐司不再显示,但我不知道我做得是否正确。

除此之外,我还尝试设置自定义 ID,但它没有改变任何内容。

我在用React-router-dom,也许这会影响某些事情,我无法找到正确的答案,也无法在文档中找到任何其他来源。

这是我的简化版本App.js:

import Layout from './containers/Layout/Layout';

import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

import { BrowserRouter, Route, Switch } from 'react-router-dom';

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <Layout>
          <Switch>
            <Route path="/clientes" exact component={ClientesControls} />
            <Route path="/adm" exact component={AdmControls} />
            <Route path="/" component={OrcConfig} />
            <ToastContainer />
          </Switch>
        </Layout>
      </BrowserRouter>
    );
  }
}

以下是正在生成错误的组件的示例:

import React from 'react';

import axios from '../../../axios';

import { toast } from 'react-toastify';

const listarProdutosItens = props => {
    
    const excluirItemHandler = i => {
        
        let key = props.listaItens[i].key
        let categoria = props.listaItens[i].categoria

        axios.delete(`/adm/${categoria}/${key}.json`)
            .then(res => {
                props.fetchLista()
                notify('excluído')
            })
            .catch(error => notify('não excluído'))
    }

    const notify = (arg) => {
        if (arg === 'excluído') {
            toast.success('Produto removido com sucesso')
            console.log('TESTE')
        } else if (arg === 'não excluído') {
            toast.error('Erro ao tentar remover produto')
        }
    }

    return (
        <div className="row border-bottom mt-2">
            <button onClick={() => excluirItemHandler(i)} ></button>
            {/* <ToastContainer /> */}
        </div>
    )

}

正常工作的组件具有相同的语法。

任何帮助将不胜感激。


我也遇到了同样的问题(而且我的问题已经超出了路由器的范围)。这可能无法解决根本问题,但对我有用的是添加自定义 toast id,即更改

toast.success('Produto removido com sucesso')

to

toast.success('Produto removido com sucesso', {
    toastId: 'success1',
})

并且重复的吐司不再出现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-toastify 显示多个 toast 的相关文章

  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • 删除旧版本的 create-react-app

    我想使用创建一个新的反应应用程序create react app脚本 我仍然安装了一个不再受支持的全局版本 因此我卸载了全局版本并尝试创建一个新版本 如下所示 npx create react app myapp 然后我得到了一个没有使用模
  • 获取 CRM 2011 中功能区按钮的 ID

    我创建了一个 JavaScript 我想在其中隐藏功能区Reactivate Lead按钮取决于某些条件 我通过在表单上按 F12 获得了按钮的 ID 即lead NoRelationship Form Mscrm Form lead Re
  • 纯 JS 相当于 Jquery eq()

    jquery 的纯等价物是什么eq 例如 我怎样才能实现 class1 class2 eq 0 text 1254 在纯 JavaScript 中 要获取数组中的元素索引 可以使用 在 JavaScript 中 因此 要重现您的代码 您可以
  • 诊断 RangeError:React KeyEscapeUtils 中超出了最大调用堆栈大小

    背景 我们的 Web 应用程序是使用官方的 React Redux 绑定用 React 和 Redux 编写的 此网络应用程序中使用的另一个主要库是PaperJS http paperjs org 我们最近将其转变为 Redux 应用程序
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • Angular UI-Router:多个 URL 到单一状态

    我已经开始使用 Angular 的 ui router 并且我正在尝试弄清楚如何让多个 URL 引用单个状态 例如 orgs 12354 overview retyrns the same pages as org overview 我的
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 如何在打字稿中使用外部js

    我通过 Typescript 代码生成 Angular JS 代码 在一种情况下 我需要将外部 JS 文件添加到我的打字稿文件中 并且需要访问 js 文件中的类 我像这样添加js文件
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown
  • highchart堆积柱每个类别的总数据

    我想获取每个类别的总数据 这point stackTotal只给出活动数据的总数 从我粘贴的代码示例中 我想知道每种水果的总消耗量 因此 即使我单击右上角图例上的乔的名字 这使得堆叠图表上的所有乔信息都处于非活动状态 我仍然可以知道约翰 简
  • javascript:完全删除top.location.hash?

    如果我的地址栏中已经有一个哈希值 例如domain com whatever 我打电话 top location hash wathever 被转换为domain com 没有任何内容 是否可以完全删除哈希值 所以没有 left 因为如果我
  • VS Code 扩展 - 获取完整路径

    我正在为 VS Code 编写一个插件 我需要知道调用扩展的文件的路径 无论是从编辑器上下文菜单或资源管理器上下文菜单调用还是用户只需键入扩展命令 function activate context get full path of the
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google

随机推荐

  • 标签替换换行符[重复]

    这个问题在这里已经有答案了 我有一个带有文本区域的表单 我想将输入中的换行符更改为段落 使用 p 标签 我正在使用爆炸和内爆来替换 n with p p 但是如果你连续有两个换行符 你最终会得到 p p p p 我试图使用 foreach
  • Asp.net MVC 中的 TimeSpan 和“24:00”解析错误

    我的 Web 应用程序中有一个模式对话框 用户可以在其中输入 00 00 到 24 00 之间的时间范围 范围滑块用于选择该范围 一切都按预期工作 除了每当用户将正确的范围句柄设置为具有值 24 00 时 默认模型绑定器无法解析此值Time
  • 对于不成功的 Try() 方法,输出值应该设置为多少?

    我正在实现 TryParse string s Out object result 方法 如果解析失败 我不想触及 out 参数 因此之前的任何结果都将保持不变 但 VS2k8 不让我这么做 无论如何 我都必须设置 out 对象的值 我应该
  • Spring Boot - Websockets - 如何查看订阅者

    我正在开发一个 websocket 应用程序 我试图让一个 websocket 提供信息 然后输出给端点的订阅者 我已经弄清楚了 但我想知道是否有办法查看订阅了哪些订阅者以及订阅了什么路径 这是我正在处理的代码示例 Autowired pr
  • 图灵机的 C 语言实现

    我正在为形式语言理论课程研究图灵机 教授建议运行以下内容算法 http code zhoubot com archives 52详细查看 TM 背后的逻辑 但不起作用 当尝试编译时告诉我以下错误 C Documents and Settin
  • 在 ASP MVC 3 中创建可下载文本文件时无法访问关闭的流

    我试图提示可下载的文本文件 txt 但出现此错误 无法访问关闭的流 我在这里查看了类似的问题 无法访问关闭的流 https stackoverflow com questions 2331675 cannot access closed s
  • Valgrind 和 CUDA:报告的泄漏是真的吗?

    我的应用程序中有一个非常简单的 CUDA 组件 Valgrind 报告了大量泄漏和仍然可达的情况 所有这些都与 cudaMalloc 调用有关 这些泄露是真的吗 我打电话cudaFree对于每一个cudaMalloc 这是 valgrind
  • 需要截断 Razor HTML DisplayFor Helper

    我试图截断一个有时非常大或有时在数据库中为空的文本字段 即 Html DisplayFor modelItem gt item MainBiography 并在末尾替换为三个点 我尝试过 substring 函数 但不断出现错误 任何指点
  • ActiveDirectoryMembershipProvider 与 Azure Active Directory

    我意识到还有其他 首选 方法可以使用 Azure Active Directory 实施身份验证 但是否可以使用标准ActiveDirectory会员提供者 with Azure 活动目录 for an Azure 网站 不能 无法将 Ac
  • 按组求和大于当前值的值

    我测量了不同地块中树木的断面积 这是一个小例子 有两个地块 每个地块有 4 棵树 Plot Tree BasalArea 1 1 4 1 2 5 1 3 7 1 4 3 2 1 4 2 2 6 2 3 9 2 4 5 在每个图中 我想计算基
  • 在 Android 日历中添加事件日期和时间

    我正在尝试在我的 Android 日历事件中添加以下日期和时间 Title and description Events for test Start Date May 05 2012 07 10PM End Date May 06 201
  • 如何选择不包括其子节点的节点的根值?

    我需要访问每个字段的新值 如果存在 和 上一个 值 以确定记录是否有更改 XML 负载示例
  • 如何从WebView获取网页内容?

    在Android上 我有一个WebView正在显示一个页面 如何获取页面源而不再次请求页面 它似乎WebView应该有某种getPageSource 方法返回一个字符串 但可惜它没有 如果我启用 JavaScript 则在此调用中放入适当的
  • 从 lxml.objectify.ObjectifiedElement 中剥离 python 命名空间属性 [重复]

    这个问题在这里已经有答案了 可能的重复 使用lxml时 可以在没有命名空间属性的情况下呈现XML吗 https stackoverflow com questions 5084730 when using lxml can the xml
  • 如何在python中将字符串转换为ip地址

    如何将字符串 ip 地址转换为十进制数 例如我有一个数据字节 b 363 3 1778952384 7076 here 1778952384是我的 IP 地址 7076是我的港口 如何将我的 IP 地址转换为十进制数 下面是我的代码 请帮我
  • 当“玻璃盒”测试导致“更少”测试时,我是否应该使用它?

    例如 我正在针对 CsvReader 编写测试 这是一个简单的类 用于枚举和分割文本行 这只是存在的理由忽略引号内的逗号 它还不到一页 通过 黑盒 测试课程 我检查了诸如 如果文件不存在怎么办 如果我没有该文件的权限怎么办 如果文件包含非
  • Nuget - 打包具有多个项目的解决方案(针对多个框架)

    假设我有以下解决方案 其中包含相同代码的多个版本 每个版本都针对不同的框架 并且我想从中生成一个 nuget 包 SharedLib sln SharedLib Net35 csproj packages config SharedLib
  • 为什么不允许 double 作为非类型模板参数? [复制]

    这个问题在这里已经有答案了 2003 年 是的 2003 Vandervoorde 和 Josuttis 在他们的书 C Templates 第 40 页 中写道 无法使用浮点文字 和简单的常量浮点表达式 作为模板参数有历史原因 由于不存在
  • 有没有办法让 ASP.NET 5 依赖注入在没有引用的情况下解析 DbContext?

    我正在使用 MVC 6 进行一些原型设计 但遇到了困境 我们的项目架构非常简单 数据层 实体框架 6 服务层 类库 引用数据层 表示层 MVC 4 参考服务层 does not参考数据层 我试图使设计尽可能与原始设计相似 即使在阅读 并同意
  • React-toastify 显示多个 toast

    我正在构建一个包含多个组件的 React 应用程序 并且我正在使用其中至少一半的组件React notify除了一个之外 几乎所有这些都可以正常工作 在这个中 当我触发 toast 时 我会得到四个 toast 一个在另一个后面 但我相信它