Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class DynamicData extends Component {
- state = {
- loading: true,
- error: null,
- data: null
- };
- componentDidMount () {
- fetchData(this.props.id)
- .then((data) => {
- this.setState({
- loading: false,
- data
- });
- })
- .catch((error) => {
- this.setState({
- loading: false,
- error: error.message
- });
- });
- }
- componentDidUpdate (prevProps) {
- if (this.props.id !== prevProps.id) {
- this.setState({ loading: true }, () => {
- fetchData(this.props.id)
- .then((data) => {
- this.setState({
- loading: false,
- data
- });
- })
- .catch((error) => {
- this.setState({
- loading: false,
- error: error.message
- });
- });
- });
- }
- }
- render () {
- const { loading, error, data } = this.state;
- return loading ? (
- <p>Loading...</p>
- ) : error ? (
- <p>Error: {error}</p>
- ) : (
- <p>Data loaded 🎉</p>
- );
- }
- }
Add Comment
Please, Sign In to add comment