【问题标题】:React Select Async options not showingReact Select Async 选项未显示
【发布时间】:2018-03-26 12:23:06
【问题描述】:

我有一个返回数据的 API 调用,我可以看到我以正确的方式返回选项,但由于某种原因,我无法让 React Select 显示选项。有什么我遗漏的吗?

searchGroups(searchString){
    if(!searchString) return Promise.resolve({ options: [] });
    UserGroups.getUserGroups(searchString).then((res) => {
      let groups = [];
      groups = res.groups.map((d) => ({
        value: d.group_ID,
        label: d.group_name
      }))
      return {options: groups};
    }, (e) => {
      this.setState({
        searchError: e.message
      })
    })
  }

据我所知,groups 数组(在搜索时)返回为

[
    {value: 1, label: "Admins"}
    {value: 22, label: "Asset Group"}
    {value: 2, label: "Read-only"}
]

但是,搜索框因“正在加载...”消息而暂停,并且加载微调器保持不变。我可以看到 API 已返回,但没有显示任何选项。

这就是我实现Select 的方式,我缺少一个选项吗? valueKeylabelKey 我都试过了,但也没有用。

<Select.Async
      multi={true}
      onChange={this.onChange}
      loadOptions={this.searchGroups}
      value={this.state.value}
 />

我确定这就是我返回数据的方式,但不确定哪里出了问题以及我需要更正什么格式。任何帮助将不胜感激。

【问题讨论】:

  • 试试return UserGroups.getUserGroups(..
  • @Oblosys,我刚刚为此浪费了 2 个小时。应该只是退后一步再看一眼。非常感谢您指出了这个明显的缺陷。你能把这个作为答案让我接受吗?

标签: javascript reactjs react-select


【解决方案1】:

问题是在UserGroups.getUserGroups(.. 之前缺少return。这导致异步代码被执行并显示在网络日志中,但结果不会到达Select.Async。如果在调用loadOptions 返回undefinedreact-select 会给出错误,那就太好了,但在这种情况下,它假定将使用回调来提供结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 2020-10-24
    • 2018-05-03
    相关资源
    最近更新 更多