react使用link跳转传递参数_修复 React 代码中烦人的 Warning

缺少 Key

cb40d26d9490061942dffd39ed5863e4.png
img

react官方文档是这样描述key的:

Keys可以在DOM中的某些元素被增加或删除的时候帮助React识别哪些元素发生了变化。因此你应当给数组中的每一个元素赋予一个确定的标识。

react的diff算法是把key当成唯一id然后比对组件的value来确定是否需要更新的,所以如果没有key,react将不会知道该如何更新组件。你不传 key 也能用是因为 react 检测到子组件没有 key 后,会默认将数组的索引作为 key。react根据key来决定是销毁重新创建组件还是更新组件,原则是:

  • key相同,组件有所变化,react会只更新组件对应变化的属性。
  • key不同,组件会销毁之前的组件,将整个组件重新渲染。

重复 Key

warning

07716a7ed686dc4d6eee71604a5772d5.png
img

从上面提到的 key 的作用可以知道,如果出现两个相同的 key,则渲染可能出现异常。

错误案例:

51e6849b4387b3f44a9076f8a07b708c.png
img

常见的错误是,在使用 antd 的 table 组件时,每个列的 dataIndex 属性同时也会作为 key,注意两个列的 dataIndex 不要相同。

P 标签包含内联元素

warning

334cf91dc374114d93a44a8b6ee79db9.png
img

在 HTML5 中,标准制定者重新定义了HTML元素的分类,并根据这一新的分类定义了元素的内容模型(Content Model) -- 对于一个元素而言,哪些子元素是合法的,而哪些子元素是非法的。需要注意的是,HTML5中的这种元素分类与inline、block没有任何关系,任何元素都可以在CSS中被定义为display:inline或者display:block。另外,除了这7大分类,还存在一些较小的分类,如Palpable、Script-Supporting等。

c3209a7e2022d3b9fed80d5e7fae4817.png
img

Metadata

顾名思

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值