Skip to content

Invariant Violation : Unable to find node on an unmounted component. #23790

Closed
@lc3t35

Description

@lc3t35

🐛 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 

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugStaleThere has been a lack of activity on this issue and it may be closed soon.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions