为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 react-select 组件上添加图标和工具提示?

如何在 react-select 组件上添加图标和工具提示?

潇潇雨雨 2022-01-20 20:27:39
我正在尝试在 react-select 组件选项上添加 fontawesome 图标和工具提示。下图我正在努力实现代码import React, { Component } from 'react';import Select from 'react-select';const websiteFilterFiedsOptions = [    {value: '', label: 'Search and select website activity'},    {value: 'page_visited', label: 'Page Visited'},    {value: 'form_submitted', label: 'Form Submitted'}]export default class Website extends Component {     constructor(props) {        super(props);        this.state = {            selectedFilter: ''        }    }    filterSelectedData = function(data) {    }    render() {        return <div className="form-group">                    <h6 className="website_filter"><b>Filters</b></h6>                    <div className="location-search field-width filed_width_custom">                        <Select                            value={this.state.selectedFilter}                            onChange={(e) => this.filterSelectedData(e)}                            options={ websiteFilterFiedsOptions }                            placeholder="Search and select website activity"                        />                    </div>                </div>;    }}
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

您需要添加组件,如下所示,仅出于演示目的添加一个选项,您可以按照自己的方式设置样式。


即使您可以使用可重用的组件来生成标签,因为标签接受一个节点。


我希望这能解决问题。


{

    value: "page_visited",

    label: (

      <>

        <span style={{ paddingRight: "5px" }}>Page Visited</span>

        <FontAwesomeIcon icon="info" title={"Page Visited Option"} />

      </>

    )

  },

整个代码


import React, { Component } from "react";

import ReactDOM from "react-dom";

import Select from "react-select";

import { library } from "@fortawesome/fontawesome-svg-core";

import { fab } from "@fortawesome/free-brands-svg-icons";

import { faInfo, faCoffee } from "@fortawesome/free-solid-svg-icons";

import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";


library.add(fab, faInfo, faCoffee);


const websiteFilterFiedsOptions = [

  { value: "", label: "Search and select website activity" },

  {

    value: "page_visited",

    label: (

      <>

        <span style={{ paddingRight: "5px" }}>Page Visited</span>

        <FontAwesomeIcon icon="info" title={"Page Visited Option"} />

      </>

    )

  },

  { value: "form_submitted", label: "Form Submitted" }

];


export default class Website extends Component {

  constructor(props) {

    super(props);

    this.state = {

      selectedFilter: ""

    };

  }


  filterSelectedData = function(data) {};


  render() {

    return (

      <div className="form-group">

        <h6 className="website_filter">

          <b>Filters</b>

        </h6>

        <div className="location-search field-width filed_width_custom">

          <Select

            value={this.state.selectedFilter}

            onChange={e => this.filterSelectedData(e)}

            options={websiteFilterFiedsOptions}

            placeholder="Search and select website activity"

          />

        </div>

      </div>

    );

  }

}


const rootElement = document.getElementById("root");

ReactDOM.render(<Website />, rootElement);


查看完整回答
反对 回复 2022-01-20
?
RISEBY

TA贡献1856条经验 获得超5个赞

我认为您可以通过使用图标值制作自己的组件和对象来尝试这种方式。

https://github.com/JedWatson/react-select/issues/3480


查看完整回答
反对 回复 2022-01-20
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我认为您可以从此https://codesandbox.io/s/8ln4vnr1v2?from-embed获得参考


查看完整回答
反对 回复 2022-01-20
  • 3 回答
  • 0 关注
  • 338 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信