{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/react-native/issues/7445","repository_url":"https://api.github.com/repos/facebook/react-native","labels_url":"https://api.github.com/repos/facebook/react-native/issues/7445/labels{/name}","comments_url":"https://api.github.com/repos/facebook/react-native/issues/7445/comments","events_url":"https://api.github.com/repos/facebook/react-native/issues/7445/events","html_url":"https://github.com/facebook/react-native/pull/7445","id":153640716,"number":7445,"title":"Make RefreshControl properly controlled by JS","user":{"login":"janicduplessis","id":2677334,"avatar_url":"https://avatars.githubusercontent.com/u/2677334?v=3","gravatar_id":"","url":"https://api.github.com/users/janicduplessis","html_url":"https://github.com/janicduplessis","followers_url":"https://api.github.com/users/janicduplessis/followers","following_url":"https://api.github.com/users/janicduplessis/following{/other_user}","gists_url":"https://api.github.com/users/janicduplessis/gists{/gist_id}","starred_url":"https://api.github.com/users/janicduplessis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janicduplessis/subscriptions","organizations_url":"https://api.github.com/users/janicduplessis/orgs","repos_url":"https://api.github.com/users/janicduplessis/repos","events_url":"https://api.github.com/users/janicduplessis/events{/privacy}","received_events_url":"https://api.github.com/users/janicduplessis/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/react-native/labels/CLA%20Signed","name":"CLA Signed","color":"e7e7e7"},{"url":"https://api.github.com/repos/facebook/react-native/labels/GH%20Review:%20review-needed","name":"GH Review: review-needed","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-05-08T07:05:03Z","updated_at":"2016-05-08T08:24:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/facebook/react-native/pulls/7445","html_url":"https://github.com/facebook/react-native/pull/7445","diff_url":"https://github.com/facebook/react-native/pull/7445.diff","patch_url":"https://github.com/facebook/react-native/pull/7445.patch"},"body":"There was an issue with the way we made `RefreshControl` a controlled component when react doesn't render synchronously. This fixes the issue by using the same technique used in the commit 0cd2904b235f53ed684bb9898280461e2cee0b5b for`PickerAndroid`\r\n\r\n**Test plan (required)**\r\n\r\nTested normal behaviour and tested that if not setting the `refreshing` prop to `true` during the `onRefresh` callback that the `RefreshControl` stops refreshing immediately. Also made sure that `setNativeProps` is only called if needed when the native refreshing state is not in sync with JS.\r\n\r\nFix #7414"},"comment":{"url":"https://api.github.com/repos/facebook/react-native/issues/comments/217703261","html_url":"https://github.com/facebook/react-native/pull/7445#issuecomment-217703261","issue_url":"https://api.github.com/repos/facebook/react-native/issues/7445","id":217703261,"user":{"login":"janicduplessis","id":2677334,"avatar_url":"https://avatars.githubusercontent.com/u/2677334?v=3","gravatar_id":"","url":"https://api.github.com/users/janicduplessis","html_url":"https://github.com/janicduplessis","followers_url":"https://api.github.com/users/janicduplessis/followers","following_url":"https://api.github.com/users/janicduplessis/following{/other_user}","gists_url":"https://api.github.com/users/janicduplessis/gists{/gist_id}","starred_url":"https://api.github.com/users/janicduplessis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janicduplessis/subscriptions","organizations_url":"https://api.github.com/users/janicduplessis/orgs","repos_url":"https://api.github.com/users/janicduplessis/repos","events_url":"https://api.github.com/users/janicduplessis/events{/privacy}","received_events_url":"https://api.github.com/users/janicduplessis/received_events","type":"User","site_admin":false},"created_at":"2016-05-08T08:24:44Z","updated_at":"2016-05-08T08:24:44Z","body":"@spicyj Moved everything to componentDidUpdate and added the missing `this._lastNativeRefreshing = this.props.refreshing;`"}}