无法在同一页面上使用 ChakraUI 中的 useDisclosure() 使用两个模式
Unable to use two modals on same page using useDisclosure() in ChakraUI
chakraUI 提供了一个自定义钩子 useDisclosure() returns isOpen, onClose, onOpen.
const { isOpen, onOpen, onClose } = useDisclosure()
onOpen 传递给触发打开模式的按钮的 onClick。
<Modal isOpen={isOpen} onClose={onClose}>
...Modal Code...
<Modal/>
<Button onClick={onOpen}>
button
<Button/>
现在我想在同一页面上制作另一个模式(比方说 reportModal)。为此,我编写了相同的代码,在解构 useDisclosure() 时重命名了变量。
const {
isOpen: { isOpenReportModal },
onOpen: { onOpenReportModal },
onClose: { onCloseReportModal },
} = useDisclosure()
此外,我通过将这些重命名的变量传递给组件来使用相同的流程,但 id 不起作用。
有人解决吗?
提前致谢...
您必须像这样重命名变量。
const {
isOpen: isOpenReportModal,
onOpen: onOpenReportModal,
onClose: onCloseReportModal
} = useDisclosure()
现在应该可以了。您尝试过的就像再次解构一样。哪里错了。
chakraUI 提供了一个自定义钩子 useDisclosure() returns isOpen, onClose, onOpen.
const { isOpen, onOpen, onClose } = useDisclosure()
onOpen 传递给触发打开模式的按钮的 onClick。
<Modal isOpen={isOpen} onClose={onClose}>
...Modal Code...
<Modal/>
<Button onClick={onOpen}>
button
<Button/>
现在我想在同一页面上制作另一个模式(比方说 reportModal)。为此,我编写了相同的代码,在解构 useDisclosure() 时重命名了变量。
const {
isOpen: { isOpenReportModal },
onOpen: { onOpenReportModal },
onClose: { onCloseReportModal },
} = useDisclosure()
此外,我通过将这些重命名的变量传递给组件来使用相同的流程,但 id 不起作用。
有人解决吗? 提前致谢...
您必须像这样重命名变量。
const {
isOpen: isOpenReportModal,
onOpen: onOpenReportModal,
onClose: onCloseReportModal
} = useDisclosure()
现在应该可以了。您尝试过的就像再次解构一样。哪里错了。