reactjs - 使用 swiperjs react 更新 swiper 效果
问题描述
我正在寻找一种方法来更新刷卡器的效果(以及其他一些设置)。我发现我们必须swiper.destroy(true, true)
再次初始化刷卡器(从这里和这里)。像这里一样初始化刷卡器
let mySwiper = new Swiper('.swiper-container', {
loop: true,
slidesPerView: '2',
centeredSlides: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
});
Swiper is not a constructor
我从导入的 Swiper 中假设的返回错误来自“swiper/react”,而不仅仅是来自“swiper”。任何想法如何解决这一问题?或任何其他方法?
谢谢!
解决方案
您必须导入 Swiper,我建议您将其存储在 ref 中,这样您就不会在每次渲染时不断创建新的 Swiper 实例,您可以执行以下操作:
import Swiper from 'swiper';
const MyComponent = () => {
const swiperRef = useRef(null);
useEffect(() => {
swiperRef.current = new Swiper(
'.swiper-container', // You can also use a ref to the element here
{
loop: true,
slidesPerView: '2',
centeredSlides: true,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
},
);
return () => {
swiperRef.current.destroy(true, true);
};
}, []);
return (
...
)
}
您现在可以使用 swiper 访问swiperRef.current
推荐阅读
- github - 是否可以使用 GitHub API 更改私有仓库的可见性?
- python - 将数据从自定义 PyQt 小部件传递到主 python 文件
- javascript - 调用withing本身的函数
- javascript - javascript 计数器脚本只是跳到 0
- c# - ASP.NET 如何在模式弹出 Bootstrap 4 上使用按钮而不关闭或刷新弹出窗口
- javascript - 如何检查本机反应是否为空?
- python - 根据多个条件为python中数据框中的行创建父ID
- c# - C# Cosmos 文件系统错误“未找到分区!”
- ansible - Ansible:执行shell脚本
- python - 如何使用 python 中的 treelib 库在树中插入节点?