Closed
Description
🐛 Bug Report
App crashes with "Invariant Violation : Unable to find node on an unmounted component." error message
Invariant Violation: Unable to find node on an unmounted component.
at invariant(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:33:19)
at findCurrentFiberUsingSlowPath(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1232:7)
at findCurrentHostFiber(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1283:12)
at findHostInstance$1(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:5769:15)
at findNodeHandle(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:5830:23)
at measureLayoutRelativeToContainingList(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Lists/VirtualizedList.js:1117:19)
at apply(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Lists/VirtualizedList.js:1101:25)
at invokeGuardedCallbackImpl(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:47:10)
at invokeGuardedCallback(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:65:29)
at invokeGuardedCallbackAndCatchFirstError(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:78:25)
at executeDispatch(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:172:3)
at executeDispatchesAndReleaseTopLevel(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:221:9)
at forEachAccumulated(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:205:59)
at fn(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1065:8)
at _batchedUpdatesImpl(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:5841:12)
at batchedUpdates(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1026:12)
at _receiveRootNodeIDEvent(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1046:3)
at apply(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-prod.js:1083:5)
at __callFunction(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:349:42)
at fn(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:106:12)
at __guard(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:297:9)
at value(/Users/laurent/Work/easydrive/dev/easydrivepro/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:105:10)
To Reproduce
Scroll inside a VirtualizedList.
After some investigation inside VirtualizedList code, I noticed this comment in https://github.com/facebook/react-native/blob/8da1f1149f5ee9f8a75cbc8baac280c95585daa2/Libraries/Lists/VirtualizedList.js
measureLayoutRelativeToContainingList(): void {
// TODO (T35574538): findNodeHandle sometimes crashes with "Unable to find
// node on an unmounted component" during scrolling
try {
Expected Behavior
Fix the TODO ;)
Code Example
<FlatList
data={listStages}
extraData={this.state}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
Environment
React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: (4) x64 Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
Memory: 122.41 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.9.4 - /usr/local/bin/node
Yarn: 1.13.0 - ~/.yarn/bin/yarn
npm: 5.6.0 - /usr/local/bin/npm
Watchman: 4.7.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
IDEs:
Android Studio: 3.1 AI-173.4907809
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.5.0 => 16.5.0
react-native: https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz => 0.57.1