簡體   English   中英

React-Select不呈現數據

[英]React-select does not render data

我正在嘗試使用react-select來制作一個簡單的下拉菜單,其中包含來自公共API的值。 但是,即使從API提取似乎正常工作( console.log()顯示所需數據),下拉選擇中也沒有選項。

我試過跟隨這個線程

但是由於我想使用鈎子,因此必須進行一些更改。

我使用了線程頂部注釋中的第三種方法(在該方法中,您將labelKeyvalueKey傳遞為prop,而不是創建新數組),但是下拉列表中只有空字段。

這是來自API的數據的示例

"results:[
 {"name":"Algeria","code":"DZ","cities":1,"locations":1,"count":1149},
 {"name":"Andorra","code":"AD","cities":2,"locations":3,"count":80963},
 {"name":"Argentina","code":"AR","cities":1,"locations":4,"count":14976}
]

這是實際功能的代碼

function SearchBar(props) {
  const [options, setOptions] = React.useState([]);

  function handleChange(e) {
    props.setCountryName(e.value);
    }

    useEffect(() => {
      async function FetchData() {
        fetch(`https://api.openaq.org/v1/countries?limit=300`, {mode: 'cors'})
          .then(res => res.json())
            .then(
            (result) => {
              setOptions(result.results)
            })
          }   
          FetchData()   
      }
    ,[])  

    console.log(options);

  return(
    <Select
    className='react-select-container'
    placeholder="Choose country" 
    onChange={handleChange}
    labelKey="name"
    valueKey="code"
    options={options}
    />
  )
}

react-select您需要告訴label哪個label和哪個value 如果您在options數組中沒有明確的labelvalue

<Select
    className='react-select-container'
    placeholder="Choose country" 
    onChange={handleChange}
    labelKey="name"
    valueKey="code"
    getOptionLabel={option => {
          return option.name;
        }}
    getOptionValue={option => {
          return option.code;
        }}
    options={options}
 />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM