Reactjs TypeScript:如何在数组中查找对象并返回该特定对象?

Reactjs TypeScript:如何在数组中查找对象并返回该特定对象?,reactjs,typescript,object,find,Reactjs,Typescript,Object,Find,我试图在数组中找到一个对象并返回该特定对象。我不熟悉打字脚本,所以我试着用这种方式解决它,但我不知道为什么它不起作用 编辑:我的代码甚至没有被遵守!我得到的错误如下: /Users/../api/VaccineDataApi.tsx(64,14)中的类型脚本错误: 对象可能为“未定义”。TS2532 import React,{useffect,useState}来自“React”; 从“axios”导入axios; 类型疫苗数据状态={ 日期:日期:, Location:string,//L

我试图在数组中找到一个对象并返回该特定对象。我不熟悉打字脚本,所以我试着用这种方式解决它,但我不知道为什么它不起作用

编辑:我的代码甚至没有被遵守!我得到的错误如下:

/Users/../api/VaccineDataApi.tsx(64,14)中的类型脚本错误: 对象可能为“未定义”。TS2532

import React,{useffect,useState}来自“React”;
从“axios”导入axios;
类型疫苗数据状态={
日期:日期:,
Location:string,//Location是类似“WA”的状态缩写
LongName:string,
分配的剂量:数量,
}
常数疫苗数据=()=>{
const[vaccine,SetVaccine]=useState([])
常量[errorMessage,SetErrorMessage]=useState(null)
useffect(()=>{
axios.get(“https://localhost:3000")
。然后((响应)=>{
const apiVaccineData=response.data.vaccinement_数据;
SetVaccine(apiVaccineData);
})
.catch((错误)=>{
SetErrorMessage(error.message);
控制台日志(错误消息);
})
}, []);
让vaccineData=vaccine.find(state=>state.Location=='WA');
返回(
试验

{vaccineData.Location} ) };
导出默认疫苗数据
疫苗数据
指功能组件。您可能想要
vaccineData.Location
而不是
vaccineData.Location

编辑:要修复
让vaccineData:VaccineDataState |未定义的对象可能是“未定义的”
,您可以:

添加
告诉Typescript编译器,
vaccineData
永远不会是
未定义的
(只有在您确定它永远不会是未定义的情况下):

let vaccineData=vaccine.find(state=>state.Location=='WA')

添加一些代码以检查
未定义的

    let vaccineData = vaccine.find(state => state.Location === 'WA');
    if(!vaccineData)
        return <p>Data not found!</p>;
let vaccineData=vaccine.find(state=>state.Location==='WA');
如果(!疫苗数据)
返回未找到数据

);
疫苗数据
指功能组件。您可能想要
vaccineData.Location
而不是
vaccineData.Location

编辑:要修复
让vaccineData:VaccineDataState |未定义的对象可能是“未定义的”
,您可以:

添加
告诉Typescript编译器,
vaccineData
永远不会是
未定义的
(只有在您确定它永远不会是未定义的情况下):

let vaccineData=vaccine.find(state=>state.Location=='WA')

添加一些代码以检查
未定义的

    let vaccineData = vaccine.find(state => state.Location === 'WA');
    if(!vaccineData)
        return <p>Data not found!</p>;
let vaccineData=vaccine.find(state=>state.Location==='WA');
如果(!疫苗数据)
返回未找到数据

);
这看起来是正确的,当
console.log(疫苗)时会得到什么?我不能,因为它甚至还没有编译:这是错误消息:类型“()=>元素”上不存在属性“Location”。TS2339Oky,所以问题不是描述您有什么类型的错误,更新itI现在就可以了,谢谢@Kalhan.toress这看起来是正确的,当
console.log(疫苗)时您会得到什么?我不能,因为它甚至还没有编译:这是错误消息:类型“()=>元素”上不存在属性“Location”。TS2339Oky,所以问题不是描述你有什么样的错误,更新itI现在就可以了,谢谢@Kalhan.ToressI尝试过了,但是我遇到了这个错误“让vaccineData:VaccineDataState |未定义的对象可能是“未定义的”。ts(2532)@Nr没错<代码>查找
返回一个可选值。试试有条件的。@tmwillin168你的答案解决了它!非常感谢你帮了我的忙!你是对的@Christopher我应该注意到我试过了,但是我遇到了一个错误“让vaccineData:VaccineDataState”未定义的对象可能是“未定义的”。ts(2532)@Nr是的<代码>查找
返回一个可选值。试试有条件的。@tmwillin168你的答案解决了它!非常感谢你帮了我的忙!你说得对,克里斯托弗我应该注意到的