gpt4 book ai didi

reactjs - 'string | undefined' 类型的参数不能分配给 'string' 类型的参数。类型 'undefined' 不可分配给类型 'string'

转载 作者:行者123 更新时间:2023-12-04 14:08:16 24 4
gpt4 key购买 nike

我在 TypeScript 中有一个字典数组,它是这样的:

const dict = [
{ name: "Lorem", prop: "sit" },
{ name: "Ipsum", prop: "amet" },
{ name: "Dolor", prop: "consectetur" }
];
当我尝试通过以下方式动态访问此字典中的对象时:
const handleChange = React.useCallback((eventKey: eventKey) => {
let property = dict.find(e => e.name === eventKey)?.prop;
changeProp(property); //Getting error here
}
请注意,这是动态更改,可以在此处找到演示: https://jsfiddle.net/mdhjfq13/3/
我得到的错误是:
TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
Type 'undefined' is not assignable to type 'string'.
我试过像这样使用它:
let property = dict.find(e => e.name === eventKey);
let name1:string = property.prop!; //Error here
changeProp(name1);
现在得到的错误是: TS2532: Object is possibly 'undefined'.我不知道如何处理这个问题,因为我是 TypeScript 和 React 的新手。

最佳答案

const handleChange = React.useCallback((eventKey: eventKey) => {
let property = dict.find(e => e.name === eventKey)?.prop;
changeProp(property); //Getting error here
}
在这里,在您的函数中,当您在 dict 上查找时,您假设 find 函数可以返回一个空值 dict.find(e => e.name === eventKey)?.prop ,
这样 property可能是 undefined | string .
尝试以这种方式更新您的函数 dict.find(e => e.name === eventKey)?.prop || "" ,这意味着如果 find 没有返回任何值,而不是 undefined,则变量 property将是 "" .

关于reactjs - 'string | undefined' 类型的参数不能分配给 'string' 类型的参数。类型 'undefined' 不可分配给类型 'string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66641126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com