反应嵌套组件不渲染

问题描述

我是新来的反应者,我正在尝试建立一个站点来巩固我的理论知识。我正在使用Storybook尝试单独开发每个组件,并且正在尝试使用原子方法。

我目前有两个acomponent,一个link组件和一个list组件。我正在尝试使用这两个组件来构建导航组件。不幸的是,我无法使它正常工作。我可以让其中任何一个元素独立显示,但是当我尝试一起使用它们时,我会得到一个空列表。

这是我的链接组件代码

//Link Component
import React from 'react'
import PropTypes from 'prop-types'
import './Link.scss'

const Link = (props) => {
    
    const { children,href,disabled,...rest} = props
    return <a href={href} {...props}>{children}</a>

}

Link.propTypes = {
    children: PropTypes.node.isRequired,disabled: PropTypes.bool,href: PropTypes.string.isRequired,}

export default Link

这是我的列表组件代码

//List Component
import React from 'react'
import PropTypes from 'prop-types'

function List(props) {
    const { children,lists:{ordered,classId }} =  props
    const ListType = ordered ? 'ol' : 'ul'

    console.log(props)

    const mapListItems = (listItems) => (
        <ListType>
            {listItems.map((item,index) => (
                <li key={item.id}>
                    {item.text}
                    { item.kids != null && item.kids.length > 0 ? mapListItems(item.kids) : "" }
                </li>
            ))}
        </ListType>
    )

    return mapListItems(children)
}

List.propTypes = {
    children: PropTypes.any,ordered: PropTypes.bool,dropdown: PropTypes.bool,classId: PropTypes.string,handleClick: PropTypes.func
}

export default List

最后,这是我的导航组件

import React from 'react'
import Link from '../../atoms/Link'
import List from '../../atoms/List'

function Navigation(props) {

    const { children,classId} } = props

    return (
        <List {...props}>
            {children.map(child => (
                <Link {...child}>
                    {child.text}
                </Link>
            ))}
        </List>
    )
}

export default Navigation

解决方法

弄清楚了。事实证明,在List组件中,我需要在地图函数中返回item组件,而不是item.text(因为从导航组件返回的子项中没有item.text)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...