通过更改其签名导出反应钩子
export react hook by changing its signature
我想在导出时更改挂钩名称及其 return 值。
这是我的用例。
我想使用 notistack api 在我的应用程序中显示一些祝酒词。但是,因为我不喜欢snackbar
这个名字,所以我想把它改成toast
。以下是我开始这样做的方式:
export { SnackbarProvider as ToastProvider, useSnackbar as useToast } from 'notistack';
但是我无法更改 return 从 useSnackbar
挂钩中编辑的变量的名称。
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
应该是
const { addToast, closeToast } = useToast();
我怎样才能做到这一点?
谢谢。
您可以定义一个自定义挂钩来包装 useSnackbar
挂钩,如下所示:
import { SnackbarProvider, useSnackbar } from 'notistack';
export const useToast = () => {
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
return { addToast: enqueueSnackbar, closeToast: closeSnackbar };
};
export const SnackbarProvider = ToastProvider;
您可以在文档中了解有关构建自定义挂钩的更多信息:https://reactjs.org/docs/hooks-custom.html
我想在导出时更改挂钩名称及其 return 值。
这是我的用例。
我想使用 notistack api 在我的应用程序中显示一些祝酒词。但是,因为我不喜欢snackbar
这个名字,所以我想把它改成toast
。以下是我开始这样做的方式:
export { SnackbarProvider as ToastProvider, useSnackbar as useToast } from 'notistack';
但是我无法更改 return 从 useSnackbar
挂钩中编辑的变量的名称。
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
应该是
const { addToast, closeToast } = useToast();
我怎样才能做到这一点?
谢谢。
您可以定义一个自定义挂钩来包装 useSnackbar
挂钩,如下所示:
import { SnackbarProvider, useSnackbar } from 'notistack';
export const useToast = () => {
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
return { addToast: enqueueSnackbar, closeToast: closeSnackbar };
};
export const SnackbarProvider = ToastProvider;
您可以在文档中了解有关构建自定义挂钩的更多信息:https://reactjs.org/docs/hooks-custom.html