react UI组件库antd-mobile中的carousel组件的一些问题
代码如下所示:
class Home extends Component {
render() {
const {
carousels: {
value = []
} = {}
} = this.props;
return (
<div>
<Carousel className="my-carousel" autoplay={false} infinite>
{
value.map((item,index) => (
<img key={index} src={item}></img>
))
}
</Carousel>
</div>
);
}
}
carousels是在Home组件的父组件中通过异步请求获得,然后通过props传到Home组件中的。carousels中的value是一个数组,包含了图片的url。
现在的话图片加载出来就是Carousel组件的默认高度,只有100px。然后如果自动轮播或者滑动的话图片的高度才会出来。
我想了一下原因大概是一开始value是空的,然后没有图片,组件就把组件高度设为了默认高度100px,就定死了。当图片的数据传下来以后,因为一开始组件已经把组件高度定死了,就不再自适应图片高度,造成组件高度是默认高度。(这里我也不知道为什么会这样,有人解答一下?)然后当滑动图片的时候,应该是触发了什么条件,让图片自适应了。(这里其实我也不知道为什么,高手解答一下?)
具体大概是这样:
我期待的:
然后实际上是这样的:
只有滑动之后或则自动轮播之后才会正常。
就是如果map前面的value如果是直接写死在里面,像官网的domo那样,就是没问题的,就是如果是从服务器拿图片数据回来再渲染,一开始图片是空的,才造成会这样好像
有没有人遇到跟我一样的问题...
求高手解答,弄了一下午了,好郁闷
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
给一个初始化的数据就行了
constructor(props) {
componentDidMount() {
传参
this.state.data.map((val, index) => ()
你把你定死的高度改为最小高度试试看