You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React TS项目中.map索引作为HTML id的类型适配问题

解决TypeScript中React Link组件id属性类型不匹配问题

直接把数组索引i转换为字符串即可,因为HTML的id属性要求是字符串类型,而map返回的索引是数字类型,导致TS类型校验报错。有两种简单的转换方式:

方式一:使用toString()方法

const cities = city.map((town, i) => {
  return <Link 
    className={`citiy ${props.dark ? 'dark' : ''}`}
    to='/home' 
    onClick={handleFetch} 
    key={nanoid()} 
    id={i.toString()}>
      {town}
  </Link>
})

方式二:使用模板字符串

const cities = city.map((town, i) => {
  return <Link 
    className={`citiy ${props.dark ? 'dark' : ''}`}
    to='/home' 
    onClick={handleFetch} 
    key={nanoid()} 
    id={`${i}`}>
      {town}
  </Link>
})

额外说明:用数组索引作为id虽能解决当前类型问题,但如果数组元素顺序变动,会导致DOM元素的id不稳定。如果你的城市数据自带唯一标识(比如每个城市专属的id字段),更推荐用这个唯一值作为id属性,既符合类型要求,也更健壮。

内容的提问来源于stack exchange,提问作者Isa Seferović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:20:37