reactjs 变量未设置为使用状态

eiee3dmh  于 2022-12-22  发布在  React
关注(0)|答案(4)|浏览(212)
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)中出现一个常量变量赋值错误;
我想在屏幕上显示国家名单

lmyy7pcs

lmyy7pcs1#

setCountriessetFilteredCountries是函数

setCountries(response.data);
  setFilteredCountries(response.data);
kh212irz

kh212irz2#

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")
    }
  };
k0pti3hp

k0pti3hp3#

这不是在React中更新状态的方式。
useState返回一个状态变量和一个状态更新函数。在您的代码中,您将response.data赋值给状态更新函数setCountries = (response.data),这是完全不正确的。
要更新状态,需要调用状态更新函数,将新状态作为参数传递

setCountries(response.data);
  setFilteredCountries(response.data);

通过编写setCountries(response.data),您可以将它***想象为***(如果您编写countries=response.data)。React实际上在调用setCountries(response.data)时 * 在内部 * 为您完成此操作,以及其他操作

i34xakig

i34xakig4#

当你使用钩子useState创建新的状态时,你创建了状态和改变状态的函数,如果你想改变值,你应该使用setState作为函数。
试试看:
设置国家(响应.数据);设置过滤县(响应数据);

相关问题