const DonorsTables = () =>{
const [search, setSearch] = useState("");
const [countries, setCountries] = useState([]);
const [filteredcountries, setFilteredCountries] = useState([]);
const getCountries = async () => {
try {
const response = await axios.get("https://restcountries.com/v2/all");
setCountries = (response.data);
setFilteredCountries = (response.data);
} catch (error) {
console.log(error)
console.log("Not Data Found")
}
};
在控制台中,我得到这个no Data found.....此外,我得到一个警告,即setCountries已定义,但其值从未使用过。并且在setCountries =(response.data)中出现一个常量变量赋值错误;
我想在屏幕上显示国家名单
4条答案
按热度按时间lmyy7pcs1#
setCountries
和setFilteredCountries
是函数kh212irz2#
k0pti3hp3#
这不是在React中更新状态的方式。
useState
返回一个状态变量和一个状态更新函数。在您的代码中,您将response.data
赋值给状态更新函数setCountries = (response.data)
,这是完全不正确的。要更新状态,需要调用状态更新函数,将新状态作为参数传递
通过编写
setCountries(response.data)
,您可以将它***想象为***(如果您编写countries=response.data
)。React实际上在调用setCountries(response.data)
时 * 在内部 * 为您完成此操作,以及其他操作i34xakig4#
当你使用钩子useState创建新的状态时,你创建了状态和改变状态的函数,如果你想改变值,你应该使用setState作为函数。
试试看:
设置国家(响应.数据);设置过滤县(响应数据);