如何在.map逻辑外从.js文件向React组件加载独立数据
问题根因
你从Data.js导出的stockData是数组类型,不是直接的对象,直接调用stockData.title、stockData.Description自然拿不到值——数组本身不存在这两个自定义属性,你要的字段实际存在数组的第1个元素(下标为0)的对象里。
可行解决方案
根据你的数据使用场景二选一即可:
- 方案1:保留数组结构,直接取对应下标元素的属性
如果你后续可能往stockData里追加多条数据,只是当前要取第一条单条数据渲染,直接按下标取值即可。注意要先在组件顶部正确导入数据:// 组件顶部导入数据 import { stockData } from './Data.js' // 组件渲染部分 return ( <div> {/* 原有的.map遍历列表渲染逻辑写在这里 */} {/* 单条数据渲染,放在列表后面 */} <h3>{stockData[0].title}</h3> <p>{stockData[0].Description}</p> </div> ) - 方案2:修改导出结构,直接导出单对象
如果你确认stockData永远只存这一条独立数据、不需要做遍历,完全没必要用数组包裹,直接修改Data.js的导出代码即可:
改完之后组件里原本写的// Data.js 修改后的导出内容 export const stockData = { title: "Date Loader Demo", Description: "Date Loader Demo Description" }{stockData.title}、{stockData.Description}就可以正常渲染,不需要额外取下标。
注意事项
- 不管用哪种方案,必须保证组件顶部已经正确导入了
Data.js里导出的stockData,否则会触发变量未定义的报错 - 如果后续需要渲染数组里的某一指定条目,把下标
0换成对应条目的索引即可
内容的提问来源于stack exchange,提问作者PRANAV
相关产品推荐
相关产品推荐

