Reactjs React setState在更改图像时不更新状态
在一个产品详细信息页面中,我得到了一个项目的大图和旋转木马中的一些小图。如果他们被点击了,我会尝试用小图片来代替大图片Reactjs React setState在更改图像时不更新状态,reactjs,setstate,Reactjs,Setstate,在一个产品详细信息页面中,我得到了一个项目的大图和旋转木马中的一些小图。如果他们被点击了,我会尝试用小图片来代替大图片 constructor() { super(); this.state = { zoomProps: { width: 400, zoomWidth:500, scale:1.5, img:'assets/images/products/14.
constructor() {
super();
this.state = {
zoomProps: {
width: 400,
zoomWidth:500,
scale:1.5,
img:'assets/images/products/14.jpg',
offset: {vertical: 0, horizontal: 10},
}
}
}
handleClick(i){
this.setState({
zoomProps:{
img: i,
}
});
}
我像这样使用zoomProps状态,效果很好
<div style={{display: 'flex', marginBottom: 10}}>
<ReactImageZoom {...this.state.zoomProps} />
</div>
如果handleClick函数中的console.log(i)显示它正在传递正确的数据,但由于某些原因zoomProps的img状态没有得到更新。
谁能告诉我去这条路的正确方向吗?
另一个问题:我是否必须使用redux并为其创建一些操作
编辑:在未定义答案的其他读取属性“setState”中不包括
onClick={this.handleClick.bind(this,'assets/images/products/17.jpg')}。我试图发送这样的数据,所以我认为这些是相似但不同的问题 您正在将
handleClick
的上下文
传递为null
,应该是此
,表示引用当前组件
更改此项:
this.handleClick.bind(null,`'assets/images/products/17.jpg'`)
到
您将
handleClick
的上下文
传递为null
,应该是,这意味着引用当前组件
更改此项:
this.handleClick.bind(null,`'assets/images/products/17.jpg'`)
到
我改成了这个.handleClick.bind(这个,'assets/images/products/17.jpg'
),现在如果我点击小图片,大图片就会消失。我想我在这里也犯了一些其他错误。请检查更新的答案,删除“从图像URL”我改成了这个。handleClick.bind(这个,'assets/images/products/17.jpg'
),现在如果我点击小图片,大图片就会消失。我想我在这里也犯了一些错误。请检查更新的答案,从图片url中删除
this.handleClick.bind(null,`'assets/images/products/17.jpg'`)
this.handleClick.bind(this,'assets/images/products/17.jpg')