javascript - 2 使用 Map 函数传递给子组件的道具
问题描述
嗨,我怎样才能将路径传递给地图功能!已尝试作为嵌套数组但无法获取
Navbar
(父组件):
class Navbar extends Component {
constructor(props) {
super(props);
this.state = {
nav: [{
topic: 'Home',
path: '/',
},
{
topic: 'Bogen',
path: '/Bogen'
},
],
topics: ['Home', 'Bogen', 'Projekt', 'Nutzer'],
path: ['/', '/Bogen', '/Projekt', '/Nutzer'],
}
}
render() {
return (
<div className='navbar'>
<NavbarTopics topics={this.state.topics}
/>
</div>
)
}
}
NavbarTopics
(子组件):
const NavbarTopics = (props) => (
<ul className='ul_Ntopics'>
{props.topics.map((topic, index) => <NavTopic topic={topic} key={index} />)}
</ul>
)
NavTopic
(子组件):
const NavTopic = (props) => <li className='li_Ntopic'><Link className='Link_Ntopic' to=''>{props.topic}</Link></li>;
NavTopic.propTypes = {
topic: PropTypes.string.isRequired,
}
export default NavTopic;
如何将状态路径传递给地图函数,以便将其作为道具传递给 NavTopic?
解决方案
不要将主题作为道具传递,而是传递导航。
//Navbar
<NavbarTopics nav={this.state.nav}
然后遍历导航数组
// NavbarTopics
const NavbarTopics = (props) => (
<ul className='ul_Ntopics'>
{props.nav.map((nav, index) => <NavTopic nav={nav} key={index} />)}
</ul>
)
在 NavTopic 中,
const NavTopic = (props) => <li className='li_Ntopic'>
<Link className='Link_Ntopic' to={props.nav.path}>{props.nav.topic}</Link>
</li>;
推荐阅读
- python - 为什么 time.sleep() 在开始时会以 cv2.VideoCapture() 失败?
- css - 翻译在 IE11 上表现异常的动画?
- node.js - NodeJS TypeError: res.get is not a function at res.json(req.res.body);
- c# - C# iTextSharp - 将图像从一个图像字段复制到另一个
- php - PDO 中的错误匹配日期
- mysql - MySQL 交叉表查询,动态显示当前周和过去 12 周
- c# - 如何模拟我的电脑没有 USB 端口
- ruby - 如果通过 Window 的命令提示符或 Linux 的终端启动 Ruby "File.open" 将不起作用(无错误)
- mongodb - 复杂查询 mongoose - 嵌入式文档数组
- javascript - 使用Javascript循环遍历数组的对象