подкласс собственного компонента react больше не работает

#reactjs #react-native #expo

Вопрос:

Я перехожу с expo 37 на expo 42, но столкнулся с проблемой, не связанной с конкретной версией. Наиболее очевидным изменением является то, что теперь архитектура изменилась с компонентов, основанных на классах, на функциональные компоненты. Поэтому я не могу повторно использовать свой код, например, в следующем фрагменте (вы можете протестировать $ expo init test_touchable и заменить App.js)

 import React from 'react';
import { StyleSheet, Text, View, TouchableHighlight } from 'react-native';

// the purpose is to change the activeOpacity property in a systematic way...
class Touchable extends TouchableHighlight {
  constructor(props) {
    super(props)
  }
}
Touchable.defaultProps = {
  activeOpacity: 0.3
}

export default function App() {
  return (
    <View style={styles.container}>
      <Text>Open up App.js to start working on your app!</Text>
      <Touchable onPress={() => alert('cucu')}><Text>qwe qwe</Text></Touchable>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});
 

Теперь я получаю эту ошибку,

 $ expo start
Starting project at /home/carlo/test/expo/test_touchable
Developer tools running on http://localhost:19002
Starting Metro Bundler
... etc etc... open expo go using the qr code ...
Logs for your project will appear below. Press Ctrl C to exit.
Android Bundling complete 3465ms
Android Running app on ........

Unable to start your application. Please refer to https://expo.fyi/no-registered-application for more information.
at node_modules/react-native/Libraries/ReactNative/AppRegistry.js:200:6 in runApplication

TypeError: Super expression must either be null or a function
at node_modules/react-native/Libraries/Core/ExceptionsManager.js:104:6 in reportException
at node_modules/react-native/Libraries/Core/ExceptionsManager.js:171:19 in handleException
at node_modules/react-native/Libraries/Core/setUpErrorHandling.js:24:6 in handleError
at node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:12:21 in ErrorUtils.setGlobalHandler$argument_0

...
 

это намекает на то, что TouchableHighlight это не более чем класс.
Как я могу снова использовать шаблон подкласса ?