From ebfd1bdf6ecca586c8d713d16c1695b3a9ec3326 Mon Sep 17 00:00:00 2001 From: Jesse Katsumata Date: Mon, 27 Jan 2020 02:03:00 -0800 Subject: [PATCH] fix: resolve Require Cycle warning (#27851) Summary: When I was testing React Native 0.62-rc.1, I noticed that console was showing a warning for Require Cycle as shown in image below ![Screen Shot 2020-01-24 at 12 22 38](https://user-images.githubusercontent.com/6936373/73042467-998dff00-3ea4-11ea-911c-955d55fd0743.png) This is because ScrollResponder was importing `ScrollView` to get the `typeof ScrollView`. I've made an export for ScrollView type in `ScrollView` so that Require cycle warning will not show up. ## Changelog [General] [Fixed] - Remove Require cycle warning. Pull Request resolved: https://github.com/facebook/react-native/pull/27851 Differential Revision: D19577644 Pulled By: cpojer fbshipit-source-id: 257b9421a91244d69394375102cfbe683326bba2 --- Libraries/Components/ScrollResponder.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Libraries/Components/ScrollResponder.js b/Libraries/Components/ScrollResponder.js index 17422571c07..fe8652ca65c 100644 --- a/Libraries/Components/ScrollResponder.js +++ b/Libraries/Components/ScrollResponder.js @@ -18,13 +18,13 @@ const ReactNative = require('../Renderer/shims/ReactNative'); const TextInputState = require('./TextInput/TextInputState'); const UIManager = require('../ReactNative/UIManager'); const Platform = require('../Utilities/Platform'); -const ScrollView = require('./ScrollView/ScrollView'); import Commands from './ScrollView/ScrollViewCommands'; const invariant = require('invariant'); const performanceNow = require('fbjs/lib/performanceNow'); import type {PressEvent, ScrollEvent} from '../Types/CoreEventTypes'; +import typeof ScrollView from './ScrollView/ScrollView'; import type {Props as ScrollViewProps} from './ScrollView/ScrollView'; import type {KeyboardEvent} from './Keyboard/Keyboard'; import type EmitterSubscription from '../vendor/emitter/EmitterSubscription'; @@ -468,7 +468,7 @@ const ScrollResponderMixin = { ({x, y, animated} = x || {}); } - const that: React.ElementRef = (this: any); + const that: React.ElementRef = (this: any); invariant( that.getNativeScrollRef != null, 'Expected scrollTo to be called on a scrollViewRef. If this exception occurs it is likely a bug in React Native', @@ -492,7 +492,7 @@ const ScrollResponderMixin = { // Default to true const animated = (options && options.animated) !== false; - const that: React.ElementRef = (this: any); + const that: React.ElementRef = (this: any); invariant( that.getNativeScrollRef != null, 'Expected scrollToEnd to be called on a scrollViewRef. If this exception occurs it is likely a bug in React Native', @@ -531,7 +531,7 @@ const ScrollResponderMixin = { ); } - const that: React.ElementRef = this; + const that: React.ElementRef = this; invariant( that.getNativeScrollRef != null, 'Expected zoomToRect to be called on a scrollViewRef. If this exception occurs it is likely a bug in React Native', @@ -547,7 +547,7 @@ const ScrollResponderMixin = { * Displays the scroll indicators momentarily. */ scrollResponderFlashScrollIndicators: function() { - const that: React.ElementRef = (this: any); + const that: React.ElementRef = (this: any); invariant( that.getNativeScrollRef != null, 'Expected flashScrollIndicators to be called on a scrollViewRef. If this exception occurs it is likely a bug in React Native',