React 中的可搜索下拉菜单

Shr*_*rma 2 javascript reactjs react-select react-virtualized react-hooks

我有以下反应列表。

<select
    id="sponsor" 
    name="sponsor"
    className="form-control"
    placeholder="Sponsor"
    }
    >
    <option value="" selected>Please select the sponsor</option>
     {
     active && result.map((sponsor:Sponsor,index:number)=>
          <option  value={sponsor.id} >{sponsor.name}</option>    
      )
    }

</select>
Run Code Online (Sandbox Code Playgroud)

它工作得很好。现在我需要将其更改为可搜索列表。我在下面做了。

     import VirtualizedSelect from 'react-virtualized-select'
    import "react-virtualized-select/styles.css";
    import 'react-virtualized/styles.css'
     

 <VirtualizedSelect
        id="sponsor" 
        name="sponsor"
        className="form-control"
        placeholder="Sponsor"
        options={ active && result.map((sponsor:Sponsor,index:number)=>
            {sponsor.name}
          
        )}

     >
       </VirtualizedSelect> 
Run Code Online (Sandbox Code Playgroud)

现在列表中没有任何内容。基本上我的要求是使列表可搜索并将API 数据插入该列表。

你能帮我做同样的事吗?任何其他选择也会非常有帮助

Edit1:-
Run Code Online (Sandbox Code Playgroud)

我需要如下列表。第一行“请选择赞助商”

在此输入图像描述

小智 6

根据此处的 VirtualizedSelect 文档https://www.npmjs.com/package/react-virtualized-select,该组件接受以下对象数组:

    const options = [
      { label: "One", value: 1 },
      { label: "Two", value: 2 },
      { label: "Three", value: 3, disabled: true }
      // And so on...
    ]
Run Code Online (Sandbox Code Playgroud)

不是字符串数组,我认为这是不起作用的方式,我建议将您的代码更改为:

 <VirtualizedSelect
        id="sponsor" 
        name="sponsor"
        className="form-control"
        placeholder="Sponsor"
        options={ active && result.map((sponsor:Sponsor,index:number)=>
            ({label: sponsor.name, value: sponsor.name})
          
        )}

     >
       </VirtualizedSelect> 
Run Code Online (Sandbox Code Playgroud)