1

我有一个 Rails 后端对我的联系人信息进行全文搜索,包括他们的电子邮件、电话号码等。

  class ContactServiceController < ApplicationController
    def search
      query = User.search_for_contacts(params[:query])
      @contacts = query.results
      render :index
    end      
  end

它返回一个只有名字和姓氏的联系人数组。

[{first: 'John', last:'doe'}, {first: 'jane', last: 'doe'}]

使用 react-select,我希望如果用户输入 john@doe.com,返回的记录将显示在下拉菜单中,我知道我不太可能突出显示该列表中的正确项目,但它很高兴只是展示它。可能吗?

这是我的反应选择组件

    <Select.Async
        name="contact-select"
        value={id}
        loadOptions={getOptions || this.getOptions}
        onChange={this.onChange}
        allowCreate={true}
    />

    const prepareContactsData = contacts => 
      map(contacts, (contact) => 
        (
          {
            label: contact.full,
            value: contact.id,
          }
        )
    )


    const getOptions = (query, callback) => {
      if(!query.length){
        return callback(null, [])
      }
      return contactServiceApi
              .search({query})
              .then( data => {
                callback(null, 
                  {
                    options: prepareContactsData(data.contacts)
                  }
                )
              })
    }

谢谢你!

4

0 回答 0