要运行 imagesrore 函数 onload 我必须调用 <img src="image_7.jpg" className="hide" alt="image_7.jpg"/>
图像但实际上没有使用此行,如果我删除此 onload 将不起作用并且不会调用函数。那么如何在反应中调用 imagestore() onload。
class PicturesList extends React.Component {
constructor(props) {
super(props);
this.state = {
imagesarray: []
};
this.imagestore = this.imagestore.bind(this);
}
render() {
return (
<div>
<div onLoad= {() => this.imagestore()}>
<img src="image_7.jpg" className="hide" alt="image_7.jpg"/>
// To run the imagesrore function onload I have to call this image but actually there is no use of this line and if I remove this onload doesn't work and function is not called
</div>
<Gallery url={this.state.imagesarray}/>
</div>
);
}
imagestore()
{
const imgUrls=this.props.apikeys;
const objarr = Object.values(imgUrls);
this.setState({
imagesarray: objarr
});
}
}
我想要的是
class PicturesList extends React.Component {
constructor(props) {
super(props);
this.state = {
imagesarray: []
};
this.imagestore = this.imagestore.bind(this);
}
render() {
return (
<div>
<div onLoad= {() => this.imagestore()}>
// but when I did this imagestore() function not called
</div>
<Gallery url={this.state.imagesarray}/>
</div>
);
}
imagestore()
{
const imgUrls=this.props.apikeys;
const objarr = Object.values(imgUrls);
this.setState({
imagesarray: objarr
});
}
}
原文由 Ayush Srivastava 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以简单地将其加载到 componentDidMount 中,而不是渲染您不想要的图像
上述解决方案只是在加载图像后调用 imageStore。但是,如果您打算在组件完全加载时调用 imageStore,只需在 componentDidMount 中触发
this.imageStore()