react native - TS2786 TypeScript gjenkjenner ikke UI-Kitten-komponenter
Feilmelding på IDE:
TS2786: 'ApplicationProvider' kan ikke brukes som en JSX-komponent.
Dens instanstype 'ApplicationProvider' er ikke et gyldig JSX-element.
Typene som returneres av 'render()' er inkompatible mellom disse typene.
Type 'React.ReactNode' kan ikke tildeles type 'import("C:/Users/someuser/node_modules/@types/react/index").ReactNode'.
Type '{}' kan ikke tildeles type 'ReactNode'.
Type '{}' kan ikke tildeles type 'ReactPortal'.
Ikke bare ApplicationProvider, men hver komponent som jeg importerte fra UI-kitten/components har feilen «ikke et gyldig JSX-element».
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* Generated with the UI Kitten TypeScript template
* https://github.com/akveo/react-native-ui-kitten
*
* Documentation: https://akveo.github.io/react-native-ui-kitten/docs
*
* @format
*/
import React from 'react';
import {
ImageProps,
StyleSheet,
} from 'react-native';
import {
ApplicationProvider,
Button,
Icon,
IconRegistry,
Layout,
Text,
} from '@ui-kitten/components';
import { EvaIconsPack } from '@ui-kitten/eva-icons';
import * as eva from '@eva-design/eva';
/**
* Use any valid `name` property from eva icons (e.g `github`, or `heart-outline`)
* https://akveo.github.io/eva-icons
*/
const HeartIcon = (props?: Partial<ImageProps>): React.ReactElement<ImageProps> => (
<Icon {...props} name='heart'/>
);
export default (): React.ReactFragment => (
<>
<IconRegistry icons={EvaIconsPack}/>
<ApplicationProvider {...eva} theme={eva.light}>
<Layout style={styles.container}>
<Text style={styles.text} category='h1'>
Welcome to UI Kitten 😻
</Text>
<Text style={styles.text} category='s1'>
Start with editing App.js to configure your App
</Text>
<Text style={styles.text} appearance='hint'>
For example, try changing theme to Dark by using eva.dark
</Text>
<Button style={styles.likeButton} accessoryLeft={HeartIcon}>
LIKE
</Button>
</Layout>
</ApplicationProvider>
</>
);
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
text: {
textAlign: 'center',
},
likeButton: {
marginVertical: 16,
},
});
Reprodusere:
npx react-native init MyApp --template @ui-kitten/template-ts
Det ser ut som at oppdatering av @types/react til den nyeste versjonen (18.0.6) vil løse problemet. Men da støtter ikke EXPO versjon 18. Det ser også ut til at problemet først har oppstått nylig.
Svar #1
Løsning her.
- Legg til
"resolutions": { "@types/react": "~17.0.21" },ipackage.json - Slett
node_modules - Installer på nytt med
yarn installeller tilsvarende