From 2f2f289815c3e70fa089e743eacd9bd0b8b52f8c Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sun, 17 Jan 2016 10:54:09 +0100 Subject: [PATCH] Remove the recommendation to use `isMounted` from beginner docs --- tips/12-initial-ajax.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tips/12-initial-ajax.md b/tips/12-initial-ajax.md index a6e0e70fa..c28835c57 100644 --- a/tips/12-initial-ajax.md +++ b/tips/12-initial-ajax.md @@ -9,7 +9,7 @@ next: false-in-jsx.html Fetch data in `componentDidMount`. When the response arrives, store the data in state, triggering a render to update your UI. -When processing the response of an asynchronous request, be sure to check that the component is still mounted before updating its state by using `this.isMounted()`. +When fetching data asynchronously, use `componentWillUnmount` to cancel any outstanding requests before the component is unmounted. This example fetches the desired Github user's latest gist: @@ -23,15 +23,19 @@ var UserGist = React.createClass({ }, componentDidMount: function() { - $.get(this.props.source, function(result) { - var lastGist = result[0]; - if (this.isMounted()) { + this.setState({ + serverRequest: $.get(this.props.source, function(result) { + var lastGist = result[0]; this.setState({ username: lastGist.owner.login, lastGistUrl: lastGist.html_url }); - } - }.bind(this)); + }.bind(this)) + }); + }, + + componentWillUnmount: function() { + this.state.serverRequest.abort(); }, render: function() {