如何在没有设置高度道具的情况下使用 react-lazyload 或 react-lazy-load?

How to use react-lazyload or react-lazy-load without set height prop?

我想延迟加载文章列表组件,但 react-lazyloadreact-lazy-load 都强制我正确设置 height 属性。在 react-lazyload 的文档中,他们提到可以在没有高度的情况下使用,但它不适用于我的示例。因为我不会在根级别进行延迟加载。

而且,如果您想知道为什么我不想拥有 height 道具,因为,我不想在我的文章列表旁边看到一个巨大的滚动条。最好看到滚动条在向下滚动时变大。

下面的代码有效,但我想 运行 它没有 height prop.

function ArticleList({ articles }) {

    return (
        <List>
            {articles.map(article => {
                return (
                    <LazyLoad key={article.uuid} height={129}>
                        <ArticleListItem showClose={false} {...article} />
                    </LazyLoad>
                )
            })}
        </List>
    )
}

有什么解决我的问题的建议吗?

看起来没有什么好的方法可以在没有 height 属性的情况下使用 react-lazyloadreact-lazy-load。解决方案对我来说是 react-lazy-load-image-component。虽然这个名字让人觉得这只是为了图片,但事实并非如此。

import React from 'react';
import { LazyLoadComponent } from 'react-lazy-load-image-component';
 
const Component = () => (
  <div>
    <LazyLoadComponent>
      <p>I am LazyLoaded</p>
    </LazyLoadComponent>
  </div>
);
 
export default Component;