【发布时间】:2021-07-17 20:57:32
【问题描述】:
我得到了用户的州/省名称并将其传递到下面的这个数组中。我正在尝试进入该特定状态并将病例和死亡人数作为单独的变量获取。但是,在打字稿中,我遇到了这个错误:Property 'state' does not exist on type 'never'. 关于如何使用类型更改useState 并将其与state 的类型匹配的任何想法?
Array(53)
0: {fips: "02", country: "US", state: "AK", county: null, level: "state", …}
1: {fips: "01", country: "US", state: "AL", county: null, level: "state", …}
2: {fips: "05", country: "US", state: "AR", county: null, level: "state", …}
3: {fips: "04", country: "US", state: "AZ", county: null, level: "state", …}
4: {fips: "06", country: "US", state: "CA", county: null, level: "state", …}
5: {fips: "08", country: "US", state: "CO", county: null, level: "state", …}
6: {fips: "09", country: "US", state: "CT", county: null, level: "state", …}
7: {fips: "11", country: "US", state: "DC", county: null, level: "state", …}
8: {fips: "10", country: "US", state: "DE", county: null, level: "state", …}
9: {fips: "12", country: "US", state: "FL", county: null, level: "state", …}
10: {fips: "13", country: "US", state: "GA", county: null, level: "state", …}
// Goes into the first index of the array
0:
actuals: {cases: 65944, deaths: 318, positiveTests: 107163, negativeTests: 2044164, contactTracers: 235, …}
annotations: {cases: {…}, deaths: {…}, positiveTests: {…}, negativeTests: {…}, contactTracers: {…}, …}
country: "US"
county: null
fips: "02"
lastUpdatedDate: "2021-04-21"
lat: null
level: "state"
locationId: "iso1:us#iso2:us-ak"
long: null
metrics: {testPositivityRatio: 0.030363378437363597, testPositivityRatioDetails: {…}, caseDensity: 22.164440621268295, contactTracerCapacityRatio: 0.28986784140969163, infectionRate: 0.968046978543, …}
population: 731545
riskLevels: {overall: 2, testPositivityRatio: 1, caseDensity: 2, contactTracerCapacityRatio: 1, infectionRate: 1, …}
state: "AK"
url: "https://covidactnow.org/us/alaska-ak"
下面是我当前的代码。
const [stateName, setStateName] = useState("AK");
const [data, setData] = useState([]);
const [stateData, setStateData] = useState();
useEffect(() => {
axios.get('https://api.covidactnow.org/v2/states.json?apiKey={apiKey}')
.then(response => response.data)
.then(responseData => {
setData(responseData)
})
.catch(err => {
console.log(err);
});
}, []);
useEffect(() => {
setStateData(data.filter(i => i.state === stateName)[0]) //Error
},[data, stateName])
【问题讨论】:
-
this 回答你的问题了吗?
标签: json typescript react-native axios expo