我正在使用react-toastify
并且我无法获得简单的吐司...
import React from "react";
import { toast } from 'react-toastify';
class MyView extends React.Component<{}, {}> {
constructor() {
super();
this.state = {
};
}
componentDidMount() {
toast("Hello", { autoClose: false });
}
notify = () => toast("Hello", { autoClose: false });
render() {
return (
<div>
<button onClick={this.notify}>Notify</button>
</div>
)}
}
package.json(在“依赖项”部分中)
"react": "^16.2.0",
"react-toastify": "^3.2.2"
如果我调试它,我看到我的toast排队,_EventManager2永远不会得到通常从队列中发出祝酒词的_constant.ACTION.MOUNTED事件......
/**
* Wait until the ToastContainer is mounted to dispatch the toast
* and attach isActive method
*/
_EventManager2.default.on(_constant.ACTION.MOUNTED, function (containerInstance) {
container = containerInstance;
toaster.isActive = function (id) {
return container.isToastActive(id);
};
queue.forEach(function (item) {
_EventManager2.default.emit(item.action, item.content, item.options);
});
queue = [];
});
..所以ToastContainer可能有问题,但是什么?我只是使用文档中的示例代码。
感谢您的帮助!
答案 0 :(得分:16)
您还必须
import 'react-toastify/dist/ReactToastify.css';
import React, { Component } from 'react';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
// minified version is also included
// import 'react-toastify/dist/ReactToastify.min.css';
class App extends Component {
notify = () => toast("Wow so easy !");
render(){
return (
<div>
<button onClick={this.notify}>Notify !</button>
<ToastContainer />
</div>
);
}
}
答案 1 :(得分:1)
其他解决方案对我不起作用-事实证明我没有将字符串传递给toast.*
函数。例如:
getSomethingFromApi()
.then((response) => {
// this works fine because response.message is a string
toast.notify(response.message)
})
.catch((error) => {
// this will fail to renter because error is an object, not a string
toast.error(error)
})
答案 2 :(得分:1)
更好的是,导入缩小的CSS:
import 'react-toastify/dist/ReactToastify.min.css';
或者如果您将其导入.scss文件中
@import '~react-toastify/dist/ReactToastify.min.css';
答案 3 :(得分:1)
使用命令安装 react-toastify
npm i react-toastify
那么:
import {ToastContainer,toast} from 'react-toastify'
作为回报添加
<ToastContainer />
然后当你做 toast('hy')
然后它会显示吐司
答案 4 :(得分:0)
我的错误是导入没有{}大括号的吐司,因为我的课程讲师这样做了。
尝试更改此内容:
import toast from 'react-toastify';
收件人:
import { toast } from 'react-toastify';
还根据所有其他“ react-toastify”堆栈溢出响应,安装最新版本会导致问题。因此,请尝试将其卸载并安装您的课程讲师所安装的较旧版本,或者4.1版似乎适用于大多数人。 首先卸载:
npm uninstall react-toastify --save
然后安装4.1版本:
npm i react-toastify@4.1
答案 5 :(得分:-1)
在声明您的课程之前,添加以下行:
toast.configure();