我还处于非常初级的水平,我被困在这项任务上了.
Tasks个
- 页面加载时,使用GET调用https://xc-countries-api.fly.dev/api/countries/的结果填充下拉菜单
- 从国家/地区下拉列表中 Select 一个国家/地区后,使用对https://xc-countries-api.fly.dev/api/countries/<;Country_code&>/States/的GET调用结果填充第二个下拉列表
我无法从第二个API获取州数据.
感谢您抽出时间...
import { useState, useEffect } from "react";
const CountriesStates = () => {
const [countries, setCountries] = useState([]);
const [states, setStates] = useState([]);
useEffect(() => {
fetch('https://xc-countries-api.fly.dev/api/countries/')
.then((response) => {
return response.json();
})
.then((data) => {
//console.log(data);
setCountries(data);
})
}, []);
useEffect(() => {
if(countries === 'default' || countries === '') {
setStates([]);
} else {
fetch(`https://xc-countries-api.fly.dev/api/countries/${countries}/states/`)
.then((response) => {
return response.json();
})
.then((data) => {
setStates(data);
})
}
}, [countries]);
return (
<>
<div>
<select name='countries' id='countries' style={{backgroundColor:'lightblue', borderRadius:'5px', fontSize:'1.3rem', marginRight:'3rem'}}>
{
countries.map((country) => (
<option key={country.id}>{country.name}</option>
))
}
</select>
</div>
<div>
<select name='states' id='states' style={{backgroundColor:'lightblue', borderRadius:'5px', fontSize:'1.3rem', marginRight:'3rem'}}>
{
states.map((state) => (
<option key={state.id}>{state.name}</option>
))
}
</select>
</div>
</>
);
};
export default CountriesStates;