我正在使用next@13,并试图使yet-another-react-lightbox(v3.12.2)的内联旋转木马每隔几秒钟导航一次。
这就是我所尝试的:
'use client';
import Lightbox, { useController } from 'yet-another-react-lightbox';
import Inline from 'yet-another-react-lightbox/plugins/inline';
export default function MyComponent ({ slides }: Props) {
const { next } = useController();
useEffect(() => {
setTimeout(function () {
next();
}, 3000);
});
return (
<Lightbox
slides={slides}
plugins={[Inline]}
inline={{
style: {...},
}}
carousel={{...}}
/>
);
}
字符串
但它不工作,我得到这个错误:
第一个月
我看不出这个useController()钩子里面的上下文是什么。也许这是一个“需要做的 prop 扩充,但我不太理解关于它的文档。有人有想法吗?谢谢!!
1条答案
按热度按时间yfwxisqw1#
useController
和其他内部lightbox钩子只能在lightbox内部渲染的组件中使用(即,在通过自定义渲染函数渲染的组件中,或在通过插件添加到lightbox的组件中)https://yet-another-react-lightbox.com/advanced#Hooks
但是,由于在本例中,您希望在lightbox组件之外使用lightbox控制器,因此需要使用ref来访问控制器。
字符串
您可能还想看看幻灯片插件,因为它听起来像是您正在尝试实现的-https://yet-another-react-lightbox.com/plugins/slideshow