gpt4 book ai didi

reactjs - 为什么我的 react-lazyload 组件不工作?

转载 作者:行者123 更新时间:2023-12-04 12:39:16 28 4
gpt4 key购买 nike

直到几天前,我的 LazyLoad 实现工作得很好,但现在我似乎无法让它工作。

这是我的组件:

import React from 'react';
import LazyLoad from 'react-lazyload';
import './image.scss';

const Image = image => (

<LazyLoad height={200} offset={100} once>

<div
className="image-container"
orientation={image.orientation}>

<img
className="image"
src={image.url}
alt={image.alt}
/>

{'caption' in image &&
<div className="meta">
<p className="caption">{image.caption}</p>
<p className="order">{image.currentNumber}/{image.maxNumber}</p>
</div>
}

</div>

</LazyLoad>
)

export default Image

在 App.js 中它是这样调用的:

render() {

return (
<div className="wrapper">

<GalleryTop details={this.state.gallery_top} />

{this.state.images.map((image, index) => <Image key={index} {...image} /> )}
</div>
)
}

但是不行!下面是演示环境: https://gifted-kare-1c0eba.netlify.com/

(检查 Inspector 中的网络选项卡以查看图像都是从初始加载请求的)

还有一个视频here

知道我做错了什么吗?

提前致谢,莫腾

最佳答案

我遇到了 npm 包 react-lazyload 的类似问题。首先,这个包只允许每个 LazyLoad 组件有一个子组件,因此您必须重新排列层次结构才能使其工作。其次,我在加载已经在视口(viewport)中设置的图像时发现了一些奇怪的行为。该文档确实列出了 import {forceCheck} from 'react-lazyload'; 结合 forceCheck(); 作为手动检查元素的方法,但我发现这不方便且对于不重新渲染的组件来说是不够的。

我能够通过替代包 react-lazy-load 的更简单实现获得完全相同的功能。注意连字符。这个包还需要 node>0.14。或多或少,它做同样的事情。您可以在这里阅读他们的文档:react-lazy-load

关于reactjs - 为什么我的 react-lazyload 组件不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61191496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com