TypeError: el.getNode is not a function

TypeError: el.getNode is not a function

我使用 rn community upgrade helper 将 react-native 版本从 v0.61.0 升级到 0.65.0 .

在 package.json 文件中进行更改后,运行安装 npm,清理 android 中的构建文件夹,构建成功,应用程序启动时出现错误屏幕。

TypeError: el.getNode is not a function

This error is located at:
    in AndroidHorizontalScrollView (at ScrollView.js:1784)
    in ScrollView (at ScrollView.js:1810)
    in ScrollView (at AnimatedScrollView.js:22)
    in Unknown (at createAnimatedComponent.js:243)
    in AnimatedComponent (at createAnimatedComponent.js:296)
    in AnimatedComponentWrapper (at TabBar.js:382)
    in RCTView (at View.js:32)
    in View (at TabBar.js:381)
    in RCTView (at View.js:32)
    in View (at createAnimatedComponent.js:243)
    in AnimatedComponent (at createAnimatedComponent.js:296)
    in AnimatedComponentWrapper (at TabBar.js:366)
    in TabBar (at MaterialTopTabBar.js:145)
    in TabBarTop (at createMaterialTopTabNavigator.js:101)
    in RCTView (at View.js:32)
    in View (at TabView.js:190)
    in TabView (at createMaterialTopTabNavigator.js:247)
    in MaterialTabView (at createTabNavigator.js:197)
    in NavigationView (at createNavigator.js:80)
    in Navigator (at RootTabs.js:218)
    in RootTabs (at SceneView.js:9)
    in SceneView (at DrawerView.js:188)
    in RCTView (at View.js:32)
    in View (at ResourceSavingScene.js:36)

我也已将 react-navigation 从 3.x 更新为 4.x.Still 没有成功。
我不明白这段代码指的是什么。

TypeError: el.getNode is not a function

我现在正在努力 运行 android。未在 ios 版本上测试。

我发现我在 application.Go 中使用 react-navigation-tabs 包到 node_modules > react-navigation-tabs > node_modules > react-navigation-tab-view > 源 > TabBar.js.

在此 TabBar.js 文件中,您将在第 412 行找到 ref={el => (this._scrollView = el && el.getNode())}

如果您在第 147 行检查 this._scrollView 分配给 _scrollView: ?ScrollView;,它是从 react-native 的 ScrollView 导入的。

由于 ScrollView 不包含任何 el 或 el.getNode() 方法,打包器抛出错误显示 el.getNode() 未定义。

要解决此问题,请执行以下步骤:

  • 使用Import {Animated} from react-native;
  • 在第147行,将故障代码更改为_scrollView: Animated.ScrollView;
  • 在第 412 行,将错误代码更改为 (this.scrollView = el && (el.getNode ? el.getNode() : el))
  • 清理并重建您的项目,现在应该可以正常工作了。

我能够按照此 link

解决此错误

遇到这个问题的可以参考这个link.

一般情况下您也可以避免调用 getNode()。它也有效。 例如我有:

_scrollView.current.getNode().scrollTo({x: x, y: 0, animated: true})

然后将其更改为:

_scrollView.current.scrollTo({x: x, y: 0, animated: true}).

问题已解决,错误消失了。显然,创作者不愿意纠正这个问题。

看看这个 https://github.com/ptomasroos/react-native-scrollable-tab-view/issues/1138