【问题标题】:Using Select prop 'isSearchable' with JSX将 Select prop 'isSearchable' 与 JSX 一起使用
【发布时间】:2021-10-26 13:06:21
【问题描述】:

我正在尝试让我的 react-select 可搜索,但我遇到了问题。基本上,我的选项标签需要在 JSX 中,因为我的客户希望一目了然地查看用户的联系信息。但是,我认为 Select prop 'isSearchable' 仅在值是字符串时才有效。这是我的代码的样子:

我传入 Select 的 'options' 属性中的数据:

const createContactDisplay = (data) => {
    return data.map((contact) => ({
      label: (
        <Contact>
          <p>{contact.value.firstName}</p>
          <p>{contact.value.lastName}</p>
          <p>{contact.value.email}</p>
        </Contact>
      ),
      value: contact.key
    }));
  };

然后我将过滤后的联系人作为上面的数据传递,并将 React select 的 options 属性设置为该状态。

任何关于我应该做什么的建议将不胜感激!

【问题讨论】:

    标签: javascript reactjs react-select


    【解决方案1】:

    来自 react-select 的 Select 接受一个选项数组,其中每个选项都是一个具有 labelvalue 属性的对象。如果要使用搜索功能,需要转换成Select能理解的选项格式:

    const options = originalOptions.map((o) => ({
      label: o.contact.value.firstName,
      value: o.contact.value.firstName,
      data: o.contact.value, // to reference custom data field if needed
    }));
    
    <Select options={options} {...} />
    

    【讨论】:

    • 我明白了,谢谢。我可以使用 JSX 作为标签的值吗?
    • @Imo 是的,您可以,您可以使用 JSX 在每个选项中显示您想要的任何内容。你有什么问题吗?
    • 我认为我需要使用一个函数来传递我在其他地方设置的数据然后返回它,但据我了解我不能这样做,对吧?
    • @Imo 你可以使用formatOptionLabel 来做到这一点。请参阅我的代码沙盒演示。
    • 哦,是的,抱歉我没有看到代码沙箱,非常感谢!
    猜你喜欢
    • 2021-01-19
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多