React+TypeScript中setState时如何解构对象匹配Team类型?
问题解决思路
你的代码主要有三个问题,逐个修正就能解决:
- 类型不匹配:
teamdropdownvalues是Team[]数组类型,但你给setTeamValue传了单个对象,必须传数组 - 数据源字段名不对应:API返回的数组元素字段是
id和description,但你定义的Team类型是TeamID和Description,需要手动映射字段名 - 数组遍历错误:
team是数组,不能直接用team.teamID访问,得遍历数组里的每个元素
正确写法
// 遍历team数组,把每个元素映射成符合Team类型的对象,再组成数组传入 setTeamValue( team.map(item => ({ TeamID: item.id, Description: item.description })) )
简单解释
team.map(...):遍历API返回的team数组,对每个元素做转换item => ({ TeamID: item.id, Description: item.description }):把每个元素的id重命名为TeamID,description重命名为Description,生成符合你定义的Team类型的对象- 最终
map会返回一个Team[]类型的数组,正好匹配setTeamValue需要的参数类型
内容的提问来源于stack exchange,提问作者user2107843
相关产品推荐
相关产品推荐

