React Native:react-native-gesture-handler:好像在 yarn 之后使用旧的 api

React Native: react-native-gesture-handler: seems like using an old api after yarn

我使用 yarn 在我的 react-native 项目中重新安装了所有 node_modules(删除 node_modules 和 运行 yarn)。完成后,我启动了我的应用程序,然后弹出此警告:

[react-native-gesture-handler] Seems like you're using an old API with gesture components, check out new Gestures system!

然后它列出了很多像这样的反应本机元素(我认为):

PanGestureHandler@http://IP/index.bundle?platform=android&dev=true&minify=false&app=com.legosocialmedia&modulesOnly=false&runModule=true:133321:38
PanGestureHandler@http://IP/index.bundle?platform=android&dev=true&minify=false&app=com.legosocialmedia&modulesOnly=false&runModule=true:132628:34
RCTView
View
AnimatedComponent@http://IP/index.bundle?platform=android&dev=true&minify=false&app=com.legosocialmedia&modulesOnly=false&runModule=true:68721:38
AnimatedComponentWrapper
RCTView
View
Card@http://IP/index.bundle?platform=android&dev=true&minify=false&app=com.legosocialmedia&modulesOnly=false&runModule=true:131894:36
CardContainer@http://IP/index.bundle?platform=android&dev=true&minify=false&app=com.legosocialmedia&modulesOnly=false&runModule=true:131451:34
RNSScreen

And so on....

我尝试重新安装 react-native-gesture-handler(yarn romove react-native-gesture-handleryarn add react-native-gesture-handler ),但这并没有改变任何东西。

react-native-gesture-handler 的新版本 如果您使用旧的 API 版本,但如果您的 [=22] 之一发送警告=] 使用它。

要禁用警告,您可以忽略日志。

在你的 app.js / app.tsx

import { LogBox } from 'react-native';

LogBox.ignoreLogs([
  "[react-native-gesture-handler] Seems like you\'re using an old API with gesture components, check out new Gestures system!",
]);

Here you have the explanation

这个错误很荒谬:D 强制使用 2.1.1 版本。你不会再看到那个恼人的错误:

"react-native-gesture-handler": "2.1.1",

我也遇到了同样的问题。我一直收到这个警告!下面提供的解决方案有助于忽略警告,但不是根解决方案。它可能会使您的应用程序更大。任何其他解决方案

import { LogBox } from 'react-native;
   LogBox.ignoreLogs([
  "[react-native-gesture-handler] Seems like you\'re using an old API with gesture components, check out new Gestures system!",
]);```

它可能是由 react-navigation 包引起的,如果使用 @react-navigation/native-stack 而不是 link

中的 @react-navigation/stack

这种方式对我有用。 安装

npm i react-native-gesture-handler@2.1.1

或根据expo在启动服务器时提到的版本安装(例如:预期版本为2.1.1)

然后关闭服务器并通过重置缓存重新打开

expo r -c

React 本机 CLI

只用这个版本

npm i react-native-gesture-handler@2.1.1

package.json

"react-native": "0.66.1",

"react-native-reanimated": "^2.4.1",

"@react-navigation/native": "^6.0.6",

"@react-navigation/native-stack": "^6.2.5",

解决方案 1:

实际上,如果您将 react-native-gesture-handler 更新到最新版本,就会显示警告。您可以通过添加以下代码来忽略警告。

import { LogBox } from 'react-native';

LogBox.ignoreLogs([
  "[react-native-gesture-handler] Seems like you\'re using an old API with gesture components, check out new Gestures system!",
]);

解决方案 2:

您可以使用以下命令将 react-native-gesture-handler 降级到旧版本。它将修复错误。

yarn add react-native-gesture-handler@2.1.1