react-native-реанимированный 2: не удается создать функцию с ключевым словом ‘worklet’ (неопределенный не является функцией)

#javascript #react-native #babeljs #react-native-reanimated #react-native-reanimated-v2

Вопрос:

я только учусь react-native-reanimated версии 2, но у меня возникла проблема при создании функции с ключевым словом «worklet».

Я установил react-native-reanimated версию v2 в голом проекте React Native с использованием npx react-native init myApp .
Я выполнил все react-native-reanimated инструкции по установке версии 2, включая:

  • настройка babel.config.js
 module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    'react-native-reanimated/plugin'
  ]
}; 
  • Включив hermes, установите значение true
  • Настройка MainApplication.java файла
  • Очистите сборку
  • Сбросьте кэш с помощью yarn start --reset-cache

Я пытаюсь создать простую функцию «рабочий лист», подобную этой:

 import React from 'react';
import { View, Button } from 'react-native';

const App = () => {

  const someWorklet = () => {
    'worklet';
    console.log('this run on UI thread');
  };

  return (
    <View >
      <Button title="Press" onPress={() => { }} />
    </View>
  );
};

export default App; 

Как вы можете видеть выше, это всего лишь простой код App.js , но если я введу 'worklet' ключевое слово, он всегда будет получать undefined is not a function такую ошибку :

сообщение об ошибке

Если вы понимаете, пожалуйста, дайте мне знать. Спасибо 🙂

Ответ №1:

О, я чувствую себя глупым человеком…
Мне просто нужно импортировать react-native-reanimated в App.js и все готово.. 🙂

 import 'react-native-reanimated'
 

Похоже, что в документации react-native-reanimated v2 не упоминается об импорте react-native-reanimated в начало нашего проекта…