ホームページ  >  に質問  >  本文

React Native Expo カスタム コンポーネントを表示できません

<p>私は初心者なので、カスタム コンポーネントの 1 つは表示されるのに、もう 1 つは表示されない理由がわかりません。 </p> <p>ホーム画面: </p> <pre class="brush:php;toolbar:false;">React を 'react' からインポートします。 'react-native' から {View, Text} をインポートします。 import { SafeAreaView } から 'react-native-safe-area-context'; import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'; import { DrawerActions } から '@react-navigation/native'; '@expo/vector-icons/Ionicons' から Ionicons をインポートします。 import { useGrid } from '../context/gridProvider'; // コンテキストプロバイダー '../components/Exam' から Exam をインポートします。 '../components/クロック' からクロックをインポートします。 const ホーム = ({ナビゲーション}) => { const {checkedItems, setCheckedItmes} = useGrid() 戻る ( <SafeAreaView style={{flex:1}}> <ScrollView style={{padding:20}}> <View style={{flexDirection: 'row', justifyContent: 'space-between', marginBottom:20,}}> <Text style={{fontSize: 16, fontWeight: 700}}></Text> <Text style={{fontSize: 32, fontWeight: 700, color:'#444'}}>今日の試験</Text> <TouchableOpacity onPress={() => Navigation.dispatch(DrawerActions.openDrawer())}> <イオンアイコン name="menu" size={32} color="#333" /> </TouchableOpacity> </表示> <Clock /> // 時計が表示されます <Exam /> // 検査リストは表示されません </ScrollView> </SafeAreaView> ) } デフォルトのホーム</pre>をエクスポートします。 <p>時計は表示されますが、試験は表示されません。</p> <p>検査コンポーネント:</p> <pre class="brush:php;toolbar:false;">React を 'react' からインポートします。 {View、Text、StyleSheet} を 'react-native' からインポートします。 import { useGrid } から '../context/gridProvider'; '../data/trialData' から ExamData をインポートします。 const 試験 = () => { const {checkedItems, setCheckedItmes} = useGrid(); selectedItems.forEach((key) => { console.log(examData[key-1].title); 戻る( <View style={{flex:1, alignItems: 'center', marginTop: 100, flexDirection: 'row'}}> <Text style={{color: '#333'}}>{examData[key-1].title}</Text> <Text>{examData[key-1].startTime}</Text> <Text>{examData[key-1].endTime}</Text> </表示> ) }); } デフォルトの試験</pre>をエクスポートします。 <p> (注: 最初のオブジェクト ID は 0 ではなく 1 なので、キー値から 1 を減算します) </p> <p>コンテキストを使用してグローバルな可用性を処理し、別の画面のリストからどの試験が選択されるかを決定します。 </p> <p>リストから検査を選択すると、<code>console.log(examData[key-1].title);</code> ステートメントは正しい情報を端末に出力します。それ以外の場合、アプリには何も表示されません。 </p> <p>リストがページから押し出されるのを防ぐために、時計コンポーネントを削除してみました。 </p> <p>私の何が間違っていたか知っている人はいますか...</p>
P粉022723606P粉022723606406日前499

全員に返信(1)返信します

  • P粉066224086

    P粉0662240862023-08-14 00:58:00

    関数 Exam は、forEach が未定義を返すため、常に未定義を返します。

    解決策: forEach の代わりにマップを使用します。

    リーリー

    返事
    0
  • キャンセル返事