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

React.js多次渲染Question组件时内部嵌套div无法渲染

问题原因

多次渲染同个Question组件时嵌套div无法正常渲染,和div嵌套结构本身无关,核心诱因有两个:

  1. 组件内所有MUI TextField都写了硬编码的固定id,同页面渲染多个组件实例时会出现大量重复id,违反HTML中id必须全局唯一的规范,直接导致MUI内部的DOM关联、样式注入逻辑错乱,连带嵌套div渲染异常
  2. 给出的代码中未体现TextField、Stack两个MUI组件的引入语句,如果漏引入对应组件,React解析组件树时会中断,直接导致后续嵌套结构无法正常渲染
修复步骤
  • 首先确认文件顶部正确引入所有依赖的MUI组件和React方法:
import { TextField, Stack } from '@mui/material';
// 引入React 18+内置的useId钩子生成唯一id
import { useId } from 'react';
  • 删掉所有硬编码的固定id,用useId为每个组件实例生成唯一的id前缀,拼接得到全局唯一的元素id,从根源避免多实例id冲突
  • 检查.question-box类对应的CSS规则,确认没有设置会截断/隐藏子元素的属性,比如过小的固定高度搭配overflow: hidden、错误的display: none规则等

修复后的完整组件代码:

const Question = () => {
  const uid = useId();
  return (
    <div className="question-box">
      <TextField
        fullWidth
        label="Enter Question!"
        id={`${uid}-question-input`}
        multiline
        minRows={2}
        maxRows={10}
        color="success"
      />

      <div>
        <Stack spacing={2}>
          <TextField id={`${uid}-opt-1`} label="Option1" variant="filled" />
          <TextField id={`${uid}-opt-2`} label="Option2" variant="filled" />
          <TextField id={`${uid}-opt-3`} label="Option3" variant="filled" />
          <TextField id={`${uid}-opt-4`} label="Option4" variant="filled" />
        </Stack>
      </div>

      <div>
        <Stack direction="row" spacing={10}>
          <TextField
            id={`${uid}-time`}
            label="Time(sec)"
            type="number"
            InputProps={{
              inputProps: {
                max: 50,
                min: 20,
              },
            }}
          />
          <TextField id={`${uid}-correct-opt`} label="Correct-Option" type="number" />
        </Stack>
      </div>
    </div>
  );
};

export default Question;
排查提示

如果修复后仍有异常,直接打开浏览器开发者工具的Console面板,优先处理红色报错:

  • 出现Duplicate id类报错:继续排查页面内其他硬编码id的元素
  • 出现is not defined类报错:对应组件/变量未正确引入
  • 无报错但渲染异常:在Elements面板选中异常位置的div,检查Computed样式是否有异常的隐藏、宽高为0的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:42:16