【问题标题】:Missing key property with dynamically generated react-bootstrap components缺少动态生成的 react-bootstrap 组件的关键属性
【发布时间】:2016-04-02 07:47:14
【问题描述】:

我偶然发现了一些可疑的行为,我不确定错误是在我身上,还是这是一个 react-bootstrap 错误。

当我动态创建导航时,出现跟随错误

main.js:2331 Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of `Header`. See ... for more information

如果我正确定义了 key,这个错误就会消失,但是 AFAIK 这不应该是必需的,因为 eventKey 应该解决这个问题

代码示例:

render() {
    let routes =[
        {
            name : 'Dashboard',
            path : '/',
        },
        {
            name : 'Navigation Manager Tool',
            path : '/tools/navigation-manager',
        }
    ];

    return (
        <Navbar inverse className="widget-header">
            <Navbar.Header>
                <Nav activeKey={this.props.active.path}>
                    {
                        routes.map((route) => {
                            return (
                                <NavItem eventKey={route.path} href={route.path}>{route.name}</NavItem>
                            );
                        })
                    }
                </Nav>
            </Navbar.Header>
        </Navbar>
    );
}

请注意,以下工作没有任何问题

render() {
    return (
        <Navbar inverse className="widget-header">
            <Navbar.Header>
                <Nav activeKey={this.props.active.path}>
                    <NavItem eventKey="/" href="/">Dashboard</NavItem>
                    <NavItem eventKey="/tools/navigation-manager" href="/tools/navigation-manager">Navigation Manager Tool</NavItem>
                </Nav>
            </Navbar.Header>
        </Navbar>
    );
}

【问题讨论】:

  • 尝试存储地图的结果,然后用 {routes} 输出它们

标签: javascript twitter-bootstrap reactjs react-bootstrap


【解决方案1】:

keyeventKey 是不同的属性。他们没有任何共同点。

如果您创建组件数组,则应始终提供key

React docs about key.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多