You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Expo自定义组件Exam不显示问题求助

问题原因及解决方法

核心问题

你的Exam组件没有返回任何JSX元素:

  • forEach循环里的return只是回调函数的返回值,不会被组件作为渲染内容返回;
  • 整个Exam函数没有顶层的return语句,所以组件渲染时输出为空。

另外,遍历生成列表元素时,必须给每个元素添加唯一的key属性,这是React的强制要求。

修复后的Exam组件代码

import React from 'react';
import {View, Text, StyleSheet} from 'react-native';
import { useGrid } from '../context/gridProvider';
import examData from '../data/trialData';

const Exam = () => {
  
  const {checkedItems} = useGrid();

  // 用map替代forEach,生成JSX数组并返回
  return (
    <View>
      {checkedItems.map((key) => {
        const exam = examData[key - 1];
        return(
          <View 
            key={key} // 添加唯一key
            style={{alignItems: 'center', marginTop: 20, flexDirection: 'row', gap: 10}}
          >
              <Text style={{color: '#333'}}>{exam.title}</Text>
              <Text>{exam.startTime}</Text>
              <Text>{exam.endTime}</Text> 
          </View>  
        )
      })}
    </View>
  )
}

export default Exam

额外优化点

  • 把examData[key-1]提取为变量,避免重复访问,提升代码可读性;
  • 调整了marginTop(从100改为20,避免元素间距过大),添加gap属性让文本之间有合理间距;
  • 移除了未使用的setCheckedItmes变量,减少不必要的依赖。

内容的提问来源于stack exchange,提问作者Rick Spencer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:00:57