打字稿类型错误无法分配字符串或未定义的字符串[]

时间:2020-05-28 16:22:03

标签: javascript reactjs typescript

无法解决打字错误,我检查了控制台日志,Set返回的区域是一个字符串数组,这正是我在状态下对区域类型拥有的字符串。为什么这不起作用?

代码:

const [regions, setRegions] = useState<string[]>([])

useEffect(() => {
    if (areasOptions) {
      const regions = [[...new Set(areasOptions.areas.map((item: ListObject) => item.region))]]
      setRegions(regions) // Error
    }
  }, [areasOptions])

错误:

类型'(string | undefined)[] []'的参数不可分配给 “ SetStateAction”类型的参数。 [0]键入'(string | undefined)[] []'不能分配给'string []'类型。 [0]类型 不能将'(string | undefined)[]'分配为'string'类型。

1 个答案:

答案 0 :(得分:0)

这个没有反应的例子应该对您有用:


function setRegions(abc: string[]) {

}
type ListObject = {
    region: string
}

const areasOptions: {areas: ListObject[]} = {
    areas: [
        {region: "a"},
        {region: "b"}
    ]
}

const regions = [...new Set(areasOptions.areas.map((item) => item.region))]
setRegions(regions)