react组件传值问题

自己写了一个轮播图的组件,在传值时却一直拿不到正确的值,
一共有四张图,img元素已经渲染出来了,但是imgNum=0,imgWidth=NAN,
图片数据是通过ajax向服务器获取的
代码如下:

<Banner imgNum={this.state.imgs.length} imgWidth={this.state.imgWidth}>
 {this.state.imgs.map((val,index) => (
    <img
        key={index}
        src={`${Tool.IP}/ydcsPhone/goodsInfo/downloadGoodsPicture?goodsInfoId=${this.gID}&goodsPictureName=${val}&session=${Tool.SESSION}`}
         alt="商品图片"
         style={{ float:"left",width:this.state.imgWidth,height:this.state.imgHeight}}
     />
 ))}
</Banner>
阅读 2k
2 个回答

应该是this 的指向不对。 在render 中定义 const self = this;
然后在 img 中 使用 style ={{width: self.state.imgWidht}}

问题解决了,是因为数据是通过ajax异步获取的,导致还没有获取到数据就已经传递给父组件,在加载组件之前做if判断即可解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题