mor*_*ern 3 lazy-loading reactjs react-lazy-load
直到几天前,我对 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
Run Code Online (Sandbox Code Playgroud)
在 App.js 中,它是这样调用的:
render() {
return (
<div className="wrapper">
<GalleryTop details={this.state.gallery_top} />
{this.state.images.map((image, index) => <Image key={index} {...image} /> )}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
但它不会工作!演示环境如下: https //gifted-kare-1c0eba.netlify.com/
(检查检查器中的网络选项卡以查看所有图像都是从初始加载请求的)
还有一个视频在这里
知道我做错了什么吗?
提前致谢,莫滕
我在 npm 包中遇到了类似的问题react-lazyload。一方面,这个包只允许每个 LazyLoad 组件有一个子组件,因此您必须重新排列层次结构才能使其工作。其次,在加载已经在视口中设置的图像时,我发现了一些奇怪的行为。该文档确实列出了import {forceCheck} from 'react-lazyload';与forceCheck();作为手动检查元素的方法相结合的方法,但我发现这对于不重新渲染的组件来说既不方便又不够充分。
我能够从替代包中通过更简单的实现获得完全相同的功能react-lazy-load。注意连字符。这个包也需要node>0.14。或多或少,它做同样的事情。你可以在这里阅读他们的文档:react-lazy-load
| 归档时间: |
|
| 查看次数: |
4000 次 |
| 最近记录: |