From afa47924d6c0d6d390fdb0370fc348d0167a95c1 Mon Sep 17 00:00:00 2001 From: Spencer Ahrens Date: Tue, 27 Jun 2017 16:16:56 -0700 Subject: [PATCH] warn when setting pagingEnabled when snapToInterval at the same time Reviewed By: fkgozali Differential Revision: D5326342 fbshipit-source-id: 2bf6b66f81e9aedaad288495f254f04af32dc63d --- Libraries/Components/ScrollView/ScrollView.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Libraries/Components/ScrollView/ScrollView.js b/Libraries/Components/ScrollView/ScrollView.js index ec074ee0a..f5691da86 100644 --- a/Libraries/Components/ScrollView/ScrollView.js +++ b/Libraries/Components/ScrollView/ScrollView.js @@ -32,6 +32,7 @@ const flattenStyle = require('flattenStyle'); const invariant = require('fbjs/lib/invariant'); const processDecelerationRate = require('processDecelerationRate'); const requireNativeComponent = require('requireNativeComponent'); +const warning = require('fbjs/lib/warning'); import type {NativeMethodsMixinType} from 'ReactNativeTypes'; @@ -313,8 +314,10 @@ const ScrollView = React.createClass({ /** * When set, causes the scroll view to stop at multiples of the value of * `snapToInterval`. This can be used for paginating through children - * that have lengths smaller than the scroll view. Used in combination - * with `snapToAlignment`. + * that have lengths smaller than the scroll view. Typically used in + * combination with `snapToAlignment` and `decelerationRate="fast"`. + * Overrides less configurable `pagingEnabled` prop. + * * @platform ios */ snapToInterval: PropTypes.number, @@ -605,6 +608,10 @@ const ScrollView = React.createClass({ if (Platform.OS === 'ios') { ScrollViewClass = RCTScrollView; ScrollContentContainerViewClass = RCTScrollContentView; + warning( + !this.props.snapToInterval || !this.props.pagingEnabled, + 'snapToInterval is currently ignored when pagingEnabled is true.' + ); } else if (Platform.OS === 'android') { if (this.props.horizontal) { ScrollViewClass = AndroidHorizontalScrollView;