react-native-vector-icons: 'XXX' cannot be used as a JSX component. Its instance type 'Icon' is not a valid JSX element.
- Review the documentation: https://github.com/oblador/react-native-vector-icons
- Search for existing issues (including closed issues): https://github.com/oblador/react-native-vector-icons/issues
Environment
windows11
Description
When I upgraded to react18,my icon component reported an error.Such as:
'MaterialCommunityIcons' cannot be used as a JSX component.
Its instance type 'Icon' is not a valid JSX element.
this is my code:
import React ,{ useEffect, useState } from "react";
import { Platform, View } from "react-native";
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'
const App = () => {
const [device, setDevice] = useState<string>('')
useEffect(() => {
if (Platform.OS === 'ios') {
setDevice('ios')
} else {
setDevice('android')
}
}, [])
return (
<View>
<MaterialCommunityIcons name="calendar" onPress={showDatepicker} size={20} />
</View>
)
}
export default App
this is my pakage.json
"dependencies":{
"expo": "^45.0.6",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-native": "^0.69.1",
"react-native-vector-icons": "^9.2.0",
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@types/react": "^18.0.14",
"@types/react-dom": "^18.0.5",
"@types/react-native": "^0.69.2",
"typescript": "~4.3.5"
},
"resolutions": {
"@types/react": "~18.0.14"
}
How to solve this problem?
About this issue
- Original URL
- State: open
- Created 2 years ago
- Reactions: 8
- Comments: 16
The Issue is with Latest Version of @types/react:18.x.x This may have been introduced to your project via some other packages’ peer dependency.
If you have a .tsconfig file, Add following to compilerOptions:
For me, the solution was to update in the package.json:
Thanks, It works @gaithoben
I’m running into the same problem.
You can see this issue: https://github.com/oblador/react-native-vector-icons/issues/1405