我找到了 useToast 和 useToastContainer ,但是缺少文档,而且我不知道您如何使用这些挂钩。谁能提供有关这些钩子的一些信息?
答案 0 :(得分:1)
toasts
继承了ToastContainer’s
道具。吐司面包上定义的道具会取代ToastContainer的道具。
在应用程序中可以使用两种方式使用toasts
:
1。在组件内定义
ToastContainer
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
const App = () => {
notify = () => toast("Wow so easy !");
return (
<div>
<button onClick={notify}>Notify !</button>
// You can add <ToastContainer /> in root component as well.
<ToastContainer />
</div>
);
}
2。在您的应用中致电
toast.configure()
。在您应用的root
处是最好的地方。
如果未安装库,库将为您安装ToastContainer
。
import { toast } from "react-toastify";
import 'react-toastify/dist/ReactToastify.css';
// Call it once in your app. At the root of your app is the best place
toast.configure()
const App = () => {
notify = () => toast("Wow so easy !");
return (
<button onClick={notify}>Notify !</button>
);
}
您可以使用它们之一。我更喜欢 2nd 方法,因为您只需要定义toast.configure()
即可,这是很干净的添加方法。
您可以根据需要添加配置,如下所示:
toast.configure({
autoClose: 8000,
draggable: false,
//etc you get the idea
});
如果要使用吐司钩子,则必须将应用程序与ToastProvider打包在一起,以访问其在应用程序中其他位置的上下文。
import { ToastProvider, useToasts } from 'react-toast-notifications'
const FormWithToasts = () => {
const { addToast } = useToasts()
const onSubmit = async value => {
const { error } = await dataPersistenceLayer(value)
if (error) {
addToast(error.message, { appearance: 'error' })
} else {
addToast('Saved Successfully', { appearance: 'success' })
}
}
return <form onSubmit={onSubmit}>...</form>
}
const App = () => (
<ToastProvider>
<FormWithToasts />
</ToastProvider>
)