После того, как компонент будет добавлен в DOM - берем src из props и создаем новый DOM-элемент img, ставим обработчик onLoad и загружаем картинку. Затем проверяем размеры и устанавливаем стейт
class Cover extends Component {
state = {
loaded: false,
width: 0,
height: 0,
}
componentDidMount() {
const img = document.createElement('img')
img.onload = e => {
console.log('image loaded', img.width, img.height)
this.setState({ loaded: true, width: img.width, height: img.height })
}
img.src = this.props.src
}
renderLoading() {
return <div>loading... </div>
}
renderLoaded() {
const { width, height } = this.state
const isFits = width === 140 && height === 205
return isFits
? <div>обложка успешно установлена</div>
: <div>Обложка должна быть 140х205</div>
}
render() {
return this.state.loaded ? this.renderLoaded() : this.renderLoading()
}
}