Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在下一个js应用程序中进行延迟加载的最佳方法是什么?_Reactjs_Amazon S3_Next.js - Fatal编程技术网

Reactjs 在下一个js应用程序中进行延迟加载的最佳方法是什么?

Reactjs 在下一个js应用程序中进行延迟加载的最佳方法是什么?,reactjs,amazon-s3,next.js,Reactjs,Amazon S3,Next.js,我在官方的下一个js文档页面()上查看了关于延迟加载组件的文档。 我尝试了上面提到的步骤,但它对我不起作用。下面是我要延迟加载的代码片段: <div id="cards" className={index.sectionCards} style={{paddingBottom: '0px'}}> <div className="title" style={{marginBottom: "0px", paddingBottom: "0px"}}> T

我在官方的下一个js文档页面()上查看了关于延迟加载组件的文档。 我尝试了上面提到的步骤,但它对我不起作用。下面是我要延迟加载的代码片段:

<div id="cards" className={index.sectionCards} style={{paddingBottom: '0px'}}>
    <div className="title" style={{marginBottom: "0px", paddingBottom: "0px"}}>
        Take a Look at Our Exciting Range of Cards
    </div>
    {this.renderCards()}
    <div></div>
</div>

看看我们令人兴奋的一系列卡片
{this.renderCards()}
此处renderCards函数调用后端API并从AWS S3获取图像,整个过程花费大量时间,因此增加了整个页面加载时间,下面是函数renderCards的代码:

renderCards() {

    const keys = Object.keys(this.state.products);
    const valid_keys = ['Specials', 'New Beginnings', 'Expressions', 'Celebrations' ];
    if(keys.length == 0) return <div></div>
    return (<div className={index.cards}>
                {
                    keys.map((key) => {
                        if(valid_keys.indexOf(key) > -1) return <div style={{ width: '80%', margin: '0 auto' }}>
                            <div className={index.category}>{key}</div>
                            <div style={{ display: 'flex', overflow: 'scroll' }} >
                                {this.state.products[key].map((c) => {
                                    if(c.status == 'PRODUCT_ACTIVE') {
                                        return <img onClick={() => this.onClickProduct(c)} className={index.cardImage} src={`<backend URL here>`} />
                                    }
                                })}
                            </div>
                        </div>
                    })
                }
            </div>)
}
renderCards(){
const keys=Object.keys(this.state.products);
const valid_keys=['Specials'、'New Beginings'、'Expressions'、'Celements'];
如果(keys.length==0)返回
返回(
{
key.map((key)=>{
如果(有效的密钥。indexOf(密钥)>-1)返回
{key}
{this.state.products[key].map((c)=>{
如果(c.status=='PRODUCT\u ACTIVE'){
返回`}/>
}
})}
})
}
)
}
目标是延迟加载此组件以提高整体页面速度

如果有人知道解决这个问题的方法,请分享。

const Cards=()=>{
const renderCards=()=>{
const keys=Object.keys(this.state.products);
常量有效密钥=[
“特色菜”,
“新的开始”,
“表达”,
“庆祝活动”,
];
如果(keys.length==0)返回;
返回(
{keys.map((key)=>(
{valid_key.indexOf(key)>-1&&(
{key}
{this.state.products[key].map((c)=>(
{c.status===“产品处于活动状态”&&(
`}
/>
)}
))}
)}
))}
);
};
返回(
看看我们令人兴奋的一系列卡片
{this.renderCards()}
);
};
```
上面的代码不是我的代码,而是问题代码的复制。
```
```
来自nextjs
有关动态/惰性负载的最佳理解,请参阅提供的链接。
从“下一个/动态”导入动态;
```
从“./LoadSpinner”导入LoadSpinner;
常量卡=动态(()=>导入(“./卡”){
```
这可以是自定义加载程序或已安装的节点模块,也可以只是加载…加载:功能将在等待加载导入功能时显示。
加载:()=>,
```
});
const CardContainer=()=>()

const Cards=()=>{
const renderCards=()=>{
const keys=Object.keys(this.state.products);
常量有效密钥=[
“特色菜”,
“新的开始”,
“表达”,
“庆祝活动”,
];
如果(keys.length==0)返回;
返回(
{keys.map((key)=>(
{valid_key.indexOf(key)>-1&&(
{key}
{this.state.products[key].map((c)=>(
{c.status===“产品处于活动状态”&&(
`}
/>
)}
))}
)}
))}
);
};
返回(
看看我们令人兴奋的一系列卡片
{this.renderCards()}
);
};
```
上面的代码不是我的代码,而是问题代码的复制。
```
```
来自nextjs
有关动态/惰性负载的最佳理解,请参阅提供的链接。
从“下一个/动态”导入动态;
```
从“./LoadSpinner”导入LoadSpinner;
常量卡=动态(()=>导入(“./卡”){
```
这可以是自定义加载程序或已安装的节点模块,也可以只是加载…加载:功能将在等待加载导入功能时显示。
加载:()=>,
```
});

const CardContainer=()=>()