【发布时间】:2021-09-05 18:27:16
【问题描述】:
我正在使用 react-slick-slider,我想要实现的是制作自定义箭头。
所以代码看起来像这样:
const FeedbackSlider = () => {
const [isLargeScreen] = useMediaQuery("(min-width: 1050px)")
const sliderRef = useRef<Slider>()
const prev = () => {
sliderRef.current?.slickPrev()
}
const next = () => {
sliderRef.current?.slickNext()
}
const settings = {
dots: false,
infinite: true,
speed: 500,
slidesToShow: (isLargeScreen ? 2 : 1),
slidesToScroll: 1,
prevArrow: (isLargeScreen && <PrevArrow />),
nextArrow: (isLargeScreen && <NextArrow />)
};
return (
<Box px={['2', '4', '8', '16']} mx='auto' pt='12'>
<Slider ref={sliderRef} {...settings}>
// slider cards...
</Slider>
{!isLargeScreen && (
<Flex alignItems='center' w='5xs' justifyContent='space-between' mx='auto' my='5'>
<PrevArrow onClick={prev} />
<NextArrow onClick={next} />
</Flex>)}
</Box >)
用作类型的 Slider 是从我正在使用的 react-slick 导入的 Slider 组件 我只在 VScode 代码中出现错误,在浏览器中可以正常工作:
没有重载匹配这个调用。 重载 1 of 2,'(props: Settings | Readonly): Slider',给出了以下错误。 类型 'MutableRefObject
' 不可分配给类型 'LegacyRef |不明确的'。 类型 'MutableRefObject ' 不可分配给类型 'RefObject'。 属性“当前”的类型不兼容。 类型“滑块 | undefined' 不可分配给类型 'Slider |空值'。 类型“未定义”不可分配给类型“滑块 |空值'。 Overload 2 of 2, '(props: Settings, context: any): Slider',给出了以下错误。 类型 'MutableRefObject ' 不可分配给类型 'LegacyRef |未定义'。
编辑:
没有重载匹配这个调用。 重载 1 of 2,'(props: Settings | Readonly): Slider',给出了以下错误。 类型'{孩子:元素[];点:布尔值;无限:布尔值;速度:数字; slidesToShow:数字; slidesToScroll:数字;上一页箭头:false |元素;下一个箭头:假 |元素;参考:MutableRefObject<...>; }' 不可分配给类型“只读”。 属性“nextArrow”的类型不兼容。 输入'假|元素”不可分配给类型“元素 |不明确的'。 类型 'false' 不可分配给类型 'Element |不明确的'。 Overload 2 of 2, '(props: Settings, context: any): Slider',给出了以下错误。 类型'{孩子:元素[];点:布尔值;无限:布尔值;速度:数字; slidesToShow:数字; slidesToScroll:数字;上一页箭头:false |元素;下一个箭头:假 |元素;参考:MutableRefObject<...>; }' 不可分配给类型“只读”。 属性“nextArrow”的类型不兼容。 输入'假|元素”不可分配给类型“元素 |未定义'。
【问题讨论】:
-
请在任何游乐场提供可重现的示例
标签: reactjs typescript use-ref react-slick