javascript - React Loadable 不会在浏览器刷新时更新

标签 javascript reactjs react-loadable

我有一张幻灯片,可以呈现一堆包含一些信息的卡片。卡片高度基于最高卡片的高度。我正在为我的 slider 使用 react-slick。在第一次渲染时,卡片都设置为一个高度,但当我刷新浏览器时,卡片的高度不同。

我的代码如下

Slider.jsx

import Loadable from 'react-loadable';
.....


const Slider = Loadable({
    loader: () => import('react-slick'),
    loading: () => null,
  });

class Slider extends Component{
   constructor(){
     this.state={ height: 0 }
     this.cards = [];
   }

   componentDidMount(){
      const height = this.getHighestHeight(this.cards);
      this.setState({height});
   }

   getHighestHeight(cards){
    //calculates the highest height of the cards
    ......
   }

   render(){
     ...
     <Slider ...>
       <Cards height={this.state.height} />
     </Slider>
     ....
   }

}

我知道 Loadable 是异步组件,这可能是它没有在浏览器刷新时设置高度的原因

最佳答案

您可能正在测试还没有高度的图像的高度。 componentDidMount() 表示组件已呈现为 <img .. />标签已呈现但不一定已加载。在您的 getHighestHeight fx 中,try checking if it's loaded然后测试它的高度。

关于javascript - React Loadable 不会在浏览器刷新时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54443179/

相关文章:

javascript - 全页js菜单不会隐藏在首页

reactjs - React Hook Forms - 添加动态字段行

reactjs - 尝试使用 React Router v6 : Attempted import error: 'Action' is not exported from 'history' 时出错

javascript - React SSR 闪烁页面

reactjs - 使用 React.lazy 预加载

javascript - 当每个数组项都是函数调用时如何调用每个数组项

javascript - Javascript中从父对象中删除子对象

javascript - 在meteorjs中定位文件的路径

reactjs - Apollo 客户端持久缓存不起作用

javascript - 在 Webpack 4 中,我们可以使用 import() token 动态生成页面 block ,以便我们可以将 react 组件转换为可 react 加载的组件吗?