Reactjs 获取错误消息";李:' ;;键';不是道具”;

Reactjs 获取错误消息";李:' ;;键';不是道具”;,reactjs,Reactjs,我正在使用React(版本15.4.2),并使用数据库中的查询结果动态填充。我以为我已经在上正确设置了“key”属性,但显然我没有-当列表呈现时,我得到了错误: 警告:李:“钥匙”不是道具。试图访问它将导致返回“undefined”。如果需要访问子组件中的相同值,则应将其作为不同的道具传递 以下是我的列表的代码: function UserList(props) { return( <ul className="UserList"> {

我正在使用React(版本15.4.2),并使用数据库中的查询结果动态填充
。我以为我已经在
  • 上正确设置了“key”属性,但显然我没有-当列表呈现时,我得到了错误:

    警告:李:“钥匙”不是道具。试图访问它将导致返回“undefined”。如果需要访问子组件中的相同值,则应将其作为不同的道具传递

    以下是我的列表的代码:

    function UserList(props) {
        return(
            <ul className="UserList">
                {
                    props.user_list.map((user) => (
                        <li className="UserListItem" key={user.id}>
                            <Link to={`/users/${user.id}`}>{user.first_name} {user.last_name}</Link>
                        </li>
                    ))
                }
            </ul>
        );
    }
    
    函数用户列表(道具){
    返回(
    
      { 道具用户列表地图((用户)=>(
    • {user.first\u name}{user.last\u name}
    • )) }
    ); }

    我看了一下,在我看来这应该是正确的。如果有人能澄清我的错误,我将不胜感激。

    我的建议是,试着看看如果你做
    道具.user\u list.map((user,index)
    ,对于
    ,给它
    索引
    ,而不是
    用户id

    如果此过程使警告消失,您可以合理地确定您有一个重复的
    id
    ,用于
    用户
    。在这种情况下,我建议您将注意力转向生成用户列表的后端。
    id
    是如何创建的?可能值得一看,以确保您唯一地标识您的用户美国


    如果此测试仍然存在错误,我建议尝试升级react版本,但我高度怀疑这种情况。

    可能user.id重复,请再次检查您试图访问props.key的代码中的其他地方

    基本上,“关键”道具不会传递给子组件


    React说:“React使用特殊道具(ref和key),因此不会转发到组件。”

    如果使用道具类型验证道具,如下所示:

    Progress.propTypes = {
        labels: PropTypes.array.isRequired,
        tab: PropTypes.func.isRequired,
        key: PropTypes.number.isRequired. <!--- this line will trigger the error--->
    }
    
    Progress.propTypes={
    标签:PropTypes.array.isRequired,
    选项卡:需要PropTypes.func.isRequired,
    关键字:PropTypes.number.isRequired。
    }
    

    从PropTypes检查中删除“key”以删除此错误。

    该警告是为哪一行生成的,您能显示该行上的内容吗?(以及它周围的行)。您是否在任何地方调用
    props.key
    ?对于第一条评论,我不完全确定-此警告是由
    warning.js
    生成的,它是记录到我控制台的唯一一行。对于第二条评论,不,我没有调用
    props.key
    任何地方-此组件中唯一的其他代码是
    导入
    导出默认值
    。我应该在哪里调用它?我收到了相同的警告消息,但我认为这是一种错误,因为如果你以匿名模式打开页面,不会抛出任何警告消息。我看不到此代码有任何问题。我用react 15.4.2模拟了一个jsbin,它没有显示任何错误。正确的答案,但给出的信息很少关于原因。根据React:“React使用特殊道具(参考和键),因此不会转发给组件。”。基本上,“键”道具不会传递给子组件。信息:Miquel我编辑了答案,以添加您提到的详细信息。谢谢