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

React Native报错:input组件View config getter callback为undefined排查求助

问题原因

你遇到的报错触发核心是两个不符合React/React Native开发规范的写法:

  1. 组件命名违反规范:React要求所有自定义组件必须大写开头,你定义的testMath组件是小写开头,同时导入的input组件也是小写开头,React会默认把小写开头的标签识别为浏览器原生DOM元素,而React Native运行环境没有DOM,所以找不到对应配置触发报错
  2. 错误混用Web和React Native组件:你在React Native项目中引入了web端的<input>、<label>标签,这类DOM元素在React Native中不存在对应的原生渲染载体

修复步骤

1. 修复组件命名问题

打开testMath.js,将组件名从testMath修改为大写开头的TestMath:

// 把原有小写的函数名改成大写
export default function TestMath() {
  // 原有逻辑保持不变
}

同时删除文件中无用的导入:import { ReactDOM } from 'react';和未使用的Image组件。

2. 修复Questions.js的错误写法

  • 首先删除错误导入:import {input} from "react-native-web";
  • 替换web原生标签为React Native对应组件:如果需要实现复选框功能,先安装官方维护的复选框组件:
    执行安装命令:npm install @react-native-community/checkbox
  • 调整选项渲染逻辑,替换原有<input>和<label>的写法,同时给所有循环渲染的元素添加唯一key属性,修改后的核心代码如下:
import CheckBox from '@react-native-community/checkbox';
import { View, Text, StyleSheet, Pressable } from 'react-native';

export default function Questions({ data }) {
    let questions = data.questions
    questions = questions.map(function(el, index){
    let variants = el.variants.map(function(e, i) {
        return (
            <Pressable key={i} style={{flexDirection: 'row', alignItems: 'center', marginVertical: 5, paddingHorizontal: 20}}>
              <CheckBox
                value={false} // 后续可自行接入选中状态逻辑
                onValueChange={(newValue) => {
                  // 处理选中逻辑
                }}
              />
              <Text style={{marginLeft: 10}}> {e.title || e.text} </Text>
            </Pressable>
        )
    })
        return ( 
            <View key={index}>
                <Text style={styles.questionHead}> {el.title} </Text>
                <Text style={styles.questionExample}>{el.code} </Text>
                {variants}
            </View>
        )
    })
    
  return (
      <View>
          <Text style={styles.testTeme}> 
              {data.testName}
          </Text>
              {questions}
      </View>
  )
}
// 原有样式保持不变

3. 修复数据字段不统一问题

你的data.js中前三条问题的选项用的是title字段,最后一条问题的选项用的是text字段,会导致最后一题的选项内容渲染空白,建议统一为相同字段名。

完成以上修改后重启项目即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:45:01