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
相关产品推荐
相关产品推荐

