import PropTypes from 'prop-types' import React from 'react' import { Image } from 'react-konva' class ImageComponent extends React.Component { static imageCaches = {} static propTypes = { src: PropTypes.string.isRequired, x: PropTypes.number.isRequired, y: PropTypes.number.isRequired, width: PropTypes.number.isRequired, height: PropTypes.number.isRequired, opacity: PropTypes.number.isRequired, } state = { image: null, } componentDidMount() { if (ImageComponent.imageCaches[this.props.src]) { this.setState({ image: ImageComponent.imageCaches[this.props.src] }) return } const image = new window.Image() image.src = this.props.src image.onload = () => { this.setState({ image }) ImageComponent.imageCaches[this.props.src] = image } } render() { return ( ) } } export default ImageComponent