[解決済み] エラーを修正しました。ルート 'Home' のコンポーネントは、React コンポーネントである必要があります。
2022-02-18 09:55:24
質問
react-navigationを使用していますが、各画面のコンポーネントを複数のファイルに移動させるとうまくいきません。 ルート'Home'のコンポーネントはReactコンポーネントでなければならない"というエラーがいつも出ます。このエラーは、すべてのコードを1つのファイルに移動しても発生しないので、何が違うのかよくわかりません。
以下は私のApp.jsです。
import React from 'react';
import { StackNavigator } from 'react-navigation';
import { AppRegistry, StyleSheet, Text, View, TouchableHighlight } from 'react-native';
import { HomeScreen } from './screens/HomeScreen';
import { JoinScreen from './screens/JoinScreen';
import { HostScreen } from './screens/HostScreen';
const Root = StackNavigator(
{
Home: {
screen: HomeScreen,
},
Details: {
screen: JoinScreen,
}
},
{
initialRouteName: 'Home',
headerMode: 'none',
}
);
export default class App extends React.Component {
render() {
return (
<Root />
)
}
}
そして、これが私の.screens/HomeScreen.jsです。
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default class HomeScreen extends React.Component {
render() {
const { navigate } = this.props.navigation;
return (
<View style={styles.container}>
<Text style={styles.title}>Hello World</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'space-around',
}
});
解決方法は?
この行を変更すればいいと思います。
import { HomeScreen } from './screens/HomeScreen';
になります。
import HomeScreen from './screens/HomeScreen';
(の周りの中括弧を削除する)。
HomeScreen
であれば、動作するはずです。なぜなら、あなたは
export default
の中に
HomeScreen
コンポーネントのソースファイルでは
構造化
を使用します。
import
. という変数にアクセスしようとしています。
HomeScreen
に解決されます。
undefined
というエラーが発生します。
あるいは
default
から
export default
を維持し
import
は同じです。個人的には、中括弧を削除した方がコードがすっきりして良いと思います。
また、この行には閉じ中括弧がありません。
import { JoinScreen from './screens/JoinScreen';
しかし、私はそれがタイプミスであると仮定しました;)
関連
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングした
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] React NativeとReactの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント