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

React组件使用传入的变量数据源时渲染失败,求修复方案

React组件数据源遍历错误修复

你的组件代码里存在语法错误,导致无法正确遍历dataSource数据,具体问题和修复方案如下:

错误原因

组件中遍历数据的代码多了一层不必要的大括号,正确的JSX表达式只需要一层大包裹,而且你写的{{dataSource}.map(...)语法本身不合法——多了一个左大括号,还把dataSource放在了对象字面量里,这会导致React无法识别这是数组遍历操作。

修复后的组件代码

const Sylwetka = ({bg, dataSource}) => {
  return (
    <div>
      <Navbar />
      <div className={`h-[50vh] p-4 ${bg}`}>
        {dataSource.map((data, index) => { // 去掉多余大括号,添加index作为key(React要求列表项必须有唯一key)
          return (
            <div key={index}>
              <h1 className='text-5xl font-extrabold opacity-60'>{data.title}</h1>
            </div>
          );
        })}
      </div>
    </div>
  )
}

export default Sylwetka

额外提示:React渲染列表时,每个列表项必须添加唯一的key属性,这里用index作为临时方案,如果你的数据里有唯一ID(比如data.id),最好用ID作为key,避免渲染性能问题。

主文件补充说明

确保你已经正确导入了dahmerData数据源,比如在App文件顶部添加:

import dahmerData from './path/to/your/data/file' // 替换成实际的文件路径
import Sylwetka from './path/to/Sylwetka' // 也要确保正确导入组件

修复后的主文件代码示例:

import { BrowserRouter, Routes, Route } from 'react-router-dom'
import Home from './Home'
import Sylwetka from './Sylwetka'
import dahmerData from './data/dahmerData' // 导入数据源

const App = () => {
  return (
    <div className="lato text-white">
      <BrowserRouter>
        <Routes>
          <Route path='/*' element={<Home />}/>
          <Route path='/dahmer' element={<Sylwetka bg='dahmer-bg' dataSource={dahmerData}/>}/>
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;

内容的提问来源于stack exchange,提问作者Jakub Polański

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:10:13