ViewPagerAndroid: FIX folly::toJson: JSON object value was a NaN or INF

Summary:
Explain the **motivation** for making this change. What existing problem does the pull request solve?

Under certain scenario, `PageScrollEvent.offset` was initialized to `NaN`, which cause `folly::toJson` failed, and FIX #9750

<e71ecb2c4d/core/java/com/android/internal/widget/ViewPager.java (L1689)>

![image](https://cloud.githubusercontent.com/assets/104052/18266416/2a01f882-744d-11e6-86c4-3a2de3a1ca25.png)

**Test plan (required)**

<http://stackoverflow.com/questions/39327429/reactnative-viewpagerandroid-rcteventemitter>
Closes https://github.com/facebook/react-native/pull/9755

Differential Revision: D3841674

Pulled By: andreicoman11

fbshipit-source-id: d4cd9f4b2f61daad9005a098161ad7f75555345d
This commit is contained in:
leeight 2016-09-09 08:47:29 -07:00 committed by Facebook Github Bot 9
parent 68848f8c91
commit 6efe8e1d81
2 changed files with 5 additions and 2 deletions

View File

@ -141,7 +141,7 @@ class ViewPagerAndroid extends React.Component {
};
componentDidMount() {
if (this.props.initialPage) {
if (this.props.initialPage != null) {
this.setPageWithoutAnimation(this.props.initialPage);
}
}

View File

@ -34,7 +34,10 @@ import com.facebook.react.uimanager.events.RCTEventEmitter;
protected PageScrollEvent(int viewTag, int position, float offset) {
super(viewTag);
mPosition = position;
mOffset = offset;
// folly::toJson default options don't support serialize NaN or Infinite value
mOffset = (Float.isInfinite(offset) || Float.isNaN(offset))
? 0.0f : offset;
}
@Override