useDisclosure 的 Chakra UI 类型问题

Rap*_*yme 4 typescript reactjs chakra-ui

我正在尝试使用 chakra ui 文档中的警报对话框示例,但我在输入时遇到了一些问题:

    const { isOpen, onOpen, onClose } = useDisclosure();
    {...}
        <AlertDialog
                    motionPreset="slideInBottom"
                    leastDestructiveRef={cancelRef}
                    onClose={onClose}
                    isOpen={isOpen}
                    isCentered
        >
                <Button ref={cancelRef} onClick={onClose}>
                    Cancel
                </Button>
        </AlertDialog>
Run Code Online (Sandbox Code Playgroud)

我从leastDestructiveRef 和 ref 收到以下错误:

类型“MutableRefObject”不可分配给类型“RefObject”。

类型“MutableRefObject”不可分配给类型“LegacyRef |” 不明确的'。

Rob*_*ell 10

我对查克拉也有同样的问题。正如 Linda Paiste 的回答一样,这为我解决了这个问题:

import { useRef } from 'react';
...
const cancelRef = useRef<HTMLButtonElement>(null);
Run Code Online (Sandbox Code Playgroud)