gpt4 book ai didi

javascript - 如何检测图像何时加载(通过 props 提供)并在 React 中更改状态?

转载 作者:可可西里 更新时间:2023-11-01 02:36:08 27 4
gpt4 key购买 nike

我想在加载最终头像图像时加载不同的图像(假头像)。这个想法是检测何时加载 Prop 图像并更改状态。可能吗?一些想法?谢谢!

class ImageUser extends React.Component {

constructor(props) {
super(props);
this.state = {userImageLoaded: false};
let imageSrc = "";

if (!this.props.userImage) {
imageSrc = this.props.noUserImage;
} else {
imageSrc = this.props.userImage;
}

this.loadingImage = <img className={styles.imageUser}
src={this.props.loadingImage} alt="2"/>;

this.userImage =
<img onLoad={this.setState({userImageLoaded: true})}
className={styles.imageUser} src={imageSrc}
alt="1"/>;

}

render() {
let image = "";
if (this.state.userImageLoaded) {
image = this.userImage;
} else {
image = this.loadingImage;
}
return (
<div>
{image}
</div>
);
}
}

export default ImageUser;

最佳答案

有几种方法可以做到这一点,但最简单的是隐藏显示最终图像,然后在加载后将其翻转为可见。

JSBin Demo

class Foo extends React.Component {
constructor(){
super();
this.state = {loaded: false};
}

render(){
return (
<div>
{this.state.loaded ? null :
<div
style={{
background: 'red',
height: '400px',
width: '400px',
}}
/>
}
<img
style={this.state.loaded ? {} : {display: 'none'}}
src={this.props.src}
onLoad={() => this.setState({loaded: true})}
/>
</div>
);
}
}

关于javascript - 如何检测图像何时加载(通过 props 提供)并在 React 中更改状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com