I'm trying to refactor this React component into a functional component but am not too sure how to handle the componentWillReceiveProps
part. I've looked up a few guides and past questions but can't find anything on this aspect specifically.
import React from "react";
class Thumbnail extends React.Component {
state = {
loading: false,
thumb: undefined,
};
componentWillReceiveProps(nextProps) {
if (!nextProps.file) {
return;
}
this.setState({ loading: true }, () => {
let reader = new FileReader();
reader.onloadend = () => {
this.setState({ loading: false, thumb: reader.result });
};
reader.readAsDataURL(nextProps.file);
});
}
render() {
const { file } = this.props;
const { loading, thumb } = this.state;
if (!file) {
return null;
}
if (loading) {
return <p>loading...</p>;
}
return (
<img
src={thumb}
alt={file.name}
className="img-thumbnail mt-2"
height={200}
width={200}
/>
);
}
}