Error: [Reanimated] `valueUnpacker` is not a worklet, js engine: hermes

回答 2 浏览 2332 2023-09-14

我是 React Native 的新手,这个错误并没有给我带来太多麻烦。我想知道如何解决这个问题。这里似乎有很多未被提及的类似问题,所以我想知道这是新问题还是常见问题。

Error: [Reanimated] `valueUnpacker` is not a worklet, js engine: hermes

我确实无法提供足够的代码示例,但当我收到此错误时,我刚刚启动了一个带有react-native-draggable-flatlist 的功能。

- - 更新 - - -
我深入了解了什么是工作单元,并开始学习 React Natvie Reanimate 库,发现我需要在 babel.config.js 中包含以下内容

module.exports = function (api) {
    api.cache(true)
    return {
        presets: ['babel-preset-expo'],
        plugins: ['react-native-reanimated/plugin'],
    }
}

这导致我出现了一个新错误:

Error: [Reanimated] Mismatch between JavaScript part and native part of Reanimated (3.5.1 vs 3.3.0).
See `https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#mismatch-between-javascript-part-and-native-part-of-reanimated` for more details., js engine: hermes

我按照提供的步骤进行操作,但该包只有一种实现:

└─┬ react-nati[email protected]
  └── [email protected]

然后我在 package.json 中设置了覆盖,但我仍然遇到与 mixmatch 相同的问题。我甚至使用 -c 标志启动 expo 来重置缓存。

Josh Bowden 提问于2023-09-14
2 个回答
#1楼 已采纳
得票数 0

所以我找到了这个解决方案:

解决方案:检查升级react-native-reanimated后是否重建了应用程序。如果您使用 Expo Go,则必须使用捆绑到 Expo SDK 中的确切版本。

https://docs.expo.dev/versions/latest/sdk/reanimated/

如果您关注我,请在开始此过程之前删除覆盖,否则您会遇到一些问题。

Josh Bowden 提问于2023-09-14
#2楼
得票数 0

确保将以下内容添加到 package.json:yarn add react-native-reanimated
yarn add react-native-gesture-handler

然后执行以下步骤

1-import "react-native-gesture-handler";
到 App.tsx
2- npx expo start -c

如果您使用 CLI 运行以下命令 npx react-native start --reset-cache

我希望它有帮助

Mawuli 提问于2023-09-20
Mawuli 修改于2023-09-20
标签