Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 类型脚本错误TS2322:类型“选项”不可分配给类型“(字符串和选项)|(数字和选项)|(只读字符串[]和选项)”_Reactjs_Typescript - Fatal编程技术网

Reactjs 类型脚本错误TS2322:类型“选项”不可分配给类型“(字符串和选项)|(数字和选项)|(只读字符串[]和选项)”

Reactjs 类型脚本错误TS2322:类型“选项”不可分配给类型“(字符串和选项)|(数字和选项)|(只读字符串[]和选项)”,reactjs,typescript,Reactjs,Typescript,我试图从@headlessui/react加载一个简单的列表框组件 Select.tsx 我应该如何解决这个问题?这个错误在库中 现在的解决方案是使用@dev版本,比如npm安装@headlessui/react@dev 希望它能很快得到修复和发布,这样我们就不需要使用@dev标志。FWIW,我刚刚创建了一个新的React项目npx create React app projectname-template typescript,添加了@headlessui/React,并将逐字复制粘贴到app

我试图从@headlessui/react加载一个简单的列表框组件

Select.tsx
我应该如何解决这个问题?

这个错误在库中

现在的解决方案是使用@dev版本,比如npm安装@headlessui/react@dev


希望它能很快得到修复和发布,这样我们就不需要使用@dev标志。

FWIW,我刚刚创建了一个新的React项目npx create React app projectname-template typescript,添加了@headlessui/React,并将逐字复制粘贴到app.tsx中。我得到的错误与你得到的完全相同。库的类型信息中似乎有问题。您可能想提出.@T.J.Crowder很酷,谢谢…我已经打开了它,但我认为这是因为我在Chrome扩展中使用了它,但现在我更新了标题。您最初提出的问题与此完全不同。我建议你提出一个关于这个问题的新问题,并从已结束的问题中删除这些评论。请共享可复制的最小值example@T.J.Crowder原来我最初提出的问题是关于其他图书馆的,所以我在评论中提到了这个问题。现在如果他们关上这个,我就打开另一个。
type Option = {
    id: number
    name: string
}

interface IProps {
    label?: string
    options: Array<Option>
}

export const Select = ({ label, options }: IProps) => {
    const [selectedOption, setSelectedOption] = React.useState<Option>(options[0])

    return (
        <Listbox value={selectedOption} onChange={setSelectedOption}>
            <Listbox.Label>{label}: </Listbox.Label>
            <Listbox.Button>{selectedOption.name}</Listbox.Button>
            <Listbox.Options>
                {options.map((option) => (
                    <Listbox.Option key={option.id} value={option}>
                        {option.name}
                    </Listbox.Option>
                ))}
            </Listbox.Options>
        </Listbox>
    )
}
const shapes = [
    {
        id: 1,
        name: 'Circle',
    },
    {
        id: 2,
        name: 'Square',
    },
]

<Select label="Shape" options={shapes} />