Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React setState在更改图像时不更新状态_Reactjs_Setstate - Fatal编程技术网

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')