From 30d7c31b65ef86d5047f51c6195f464f726f6357 Mon Sep 17 00:00:00 2001 From: krister Date: Thu, 20 Dec 2018 20:35:50 -0300 Subject: [PATCH] [fix] ScrollView smooth scrolling Rely on the `element.scroll()` programmatic API when available (or polyfilled). Fix #1203 Fix #1173 Close #1208 --- .../src/modules/ScrollResponder/index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/react-native-web/src/modules/ScrollResponder/index.js b/packages/react-native-web/src/modules/ScrollResponder/index.js index 91d07fab..e7dd857d 100644 --- a/packages/react-native-web/src/modules/ScrollResponder/index.js +++ b/packages/react-native-web/src/modules/ScrollResponder/index.js @@ -375,9 +375,12 @@ const ScrollResponderMixin = { ({ x, y, animated } = x || emptyObject); } const node = this.scrollResponderGetScrollableNode(); - UIManager.updateView(node, { style: { scrollBehavior: !animated ? 'auto' : 'smooth' } }, this); - node.scrollLeft = x || 0; - node.scrollTop = y || 0; + if (typeof node.scroll === 'function') { + node.scroll({ top: y || 0, left: x || 0, behavior: !animated ? 'auto' : 'smooth' }); + } else { + node.scrollLeft = x || 0; + node.scrollTop = y || 0; + } }, /**