我遇到了一个问题,因为我有一个Map,它所做的就是获取值并将其传递给组件。此组件是一个类别滑块,包含产品。
因此,当服务响应非常快时,它没有在第一次完成组件渲染并启动另一个组件,我该如何处理它?
const getProductsWithTree = () => {
if(ifExistAndMayorToZero(tree)) {
return (
tree.map((category:any) => {
return (
<GlobalComponents.ProductSliderAsync
filterBrand={false}
singleProviderId={vendorId}
category={category}
hideMore={true}
isLoading={isLoadingProducts}
brandId={brandId}
validateIfIsHasProducts={ifIsHasProducts}
{...props}
/>
)
})
)
}
}
我想出了一些办法,比如知道我什么时候回来处理Map,但我不知道。
这不起作用,并且错误发生,当它响应非常快时,如果我将慢速连接放在那里,它就可以正常工作。
1条答案
按热度按时间3qpi33ja1#
如果“服务”引用树的源,则可以将树存储在状态中,以便在树更改时重新渲染滑块。
如果它引用的外部服务导致另一个组件在使用树完成渲染之前在滑块上进行渲染,则可以在滑块完成渲染之前暂停渲染所述第二个组件(“另一个组件”)。
第二种情况的简单概念化:
如果一个组件影响另一个组件的渲染,那么它们可能共享一个条件逻辑。
也许您可以通过让productslider更新存储中的值(我们称之为
sliderRenderIsDone
)并将其添加到共享条件中: