react Input组件输入字符串,失去焦点,需要重新点击获取焦点

出错的伪代码如下:

import { Input } from 'antd'
...
let arr = [1, 2, 3, 4]
...
  return (
    <div>
      {
        arr.map((item) => {
          return ( <Input
          key={Math.random()}
          onChange={(value)=>{
         	console.log(value)
          }}
          />)
        })
      }
    </div>
  )

看似普通,暗含杀机
我有时会使用Math.random()去当作key值,但是更新渲染时,每一次更新都会重新计算key值,这就意味这我们的Input已经不是同一个了,自然就会失去焦点。
最好的办法就是使用对象的id,index也要慎用


版权声明:本文为weixin_48496520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。