javascript - 无法直接在子组件中访问道具
问题描述
我已将数据作为 JavaScript 对象存储在文件 (details.js) 中,然后我试图将其作为道具从 MainComponent 传递给 ChildComponent。好吧,道具可以在 ChildComponent 中访问,但我可以使用它props.ChildDetails[0].name
而不是props.name
直接访问它,如官方文档中所示
我错过了什么?
细节.js
export const DETAILS=[
{
id:0,
profile:'/assests/images/john.png',
name:'John Doe',
}
]
MainComponent.js
import React,{useState} from 'react';
import Child from './ChildComponent';
import {DETAILS} from '../Shared/details';
function MainComponent(){
return(
<>
<Child ChildDetails={DETAILS}/>
</>
);
}
export default MainComponent;
ChildComponent.js
import React from 'react';
function ChildComponent(props){
console.log(props.name) //Output:undefined
console.log(props.ChildDetails[0].name) //Output:John Doe
return(
<div></div>
);
}
export default ChildComponent;
解决方案
因为细节是对象。尝试类似:
function ChildComponent({ ChildDetails }){
const { name } = ChildDetails[0]
...
}
这甚至不是 React。那是 JavaScript
编辑. 哎呀。人们说那是一个数组。我以为它只是一个对象。固定代码一点
推荐阅读
- reactjs - 如何处理在反应中添加重复项
- java - 使用附加的初始化向量java加密和解密带有流的文件
- service - 当我将 Wildfly 20 作为服务运行时,设置一些关键路径时出现问题
- npm - 我的狗在 Win 10 中删除了所有环境变量 PATH,现在“npm start”不起作用
- javascript - Leaflet Zoom Button in Popup
- java - 在 Firebase 中注册并使用电话号码登录
- c++ - Command CodeSign 出现问题失败,退出代码为非零,还给了我签名身份:“-”
- jquery - 如何使用 windows.print 让两个按钮打印不同的部分?
- flutter - 为什么在使用带有 selectedItemBuilder 和提示的 DropdownButton 时会出现类型错误?
- c# - 如果类将对象引用作为其值,为什么“new”关键字不覆盖它们?