diff --git a/Libraries/Components/ScrollView/ScrollView.js b/Libraries/Components/ScrollView/ScrollView.js index ec074ee0a58afe..f5691da8631af3 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;