reactNativeで以下のコードを記述したところ、AppNavigator.tsx側で下記のエラーが発生しました。
HomeScreen.tsx
const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', }, }); const HomeScreen = () => { return ( (省略) ); }; export default HomeScreen();
AppNavigator.tsx
import React from 'react'; import { createStackNavigator } from '@react-navigation/stack'; import { NavigationContainer } from '@react-navigation/native'; import HomeScreen from '../screens/HomeScreen'; import ArticleScreen from '../screens/ArticleScreen'; export default function App() { const Stack = createStackNavigator(); return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} //ここで下記エラーが発生 options={{ headerShown: false }} /> </Stack.Navigator> </NavigationContainer> ); }
Type 'Element' is not assignable to type 'ComponentType<any> | undefined'. Type 'Element' is not assignable to type 'FunctionComponent<any>'. Type 'Element' provides no match for the signature '(props: any, context?: any): ReactElement<any, any> | null'.ts(2322)
HomeScreen.tsxで最後のexport default
をやめてexport const HomeScreen = () => {}
にしたところエラーは解決したのですが、なぜexport defaultをやめたことで上記エラーが解決されたのかが分かりません。
TypeScriptのElementとComponentTypeの違いは何なのでしょうか?
export defaultを修正してエラーが解決したということは、この部分が何か関係しているということなのでしょうか?
わかる方がいましたら教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/12 13:25