reactjs - 使用 Bootstrap "prepend"和 react-select

标签 reactjs bootstrap-4 react-select reactstrap

我正在尝试将 Bootstrap input-group-prepend 与 react-select 一起使用,但是 react-selects 的样式似乎不是当前的 bootstrap/reactstrap,因此不想一起工作。

选择框不会与前置元素合并(所有角上的半径为 4px 而不是右角),元素上的框阴影与 bootstrap 4 使用的完全不同,这会产生令人讨厌的一致性问题。

这提供了所需的外观和感觉,并且在使用 .map 作为选项时保持不变。

  <InputGroup className="mb-3">
     <InputGroupAddon addonType="prepend">
        <InputGroupText><FaBriefcaseMedical /></InputGroupText>
     </InputGroupAddon>
     <Input type="select" name="select" id="ConsultantSelect">
        <option value="" value disabled selected>Select Consultant</option>
        <option>Roland Deschain</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
     </Input>
  </InputGroup>

然而,这是使用 react-select 没有按预期/期望显示
<InputGroup className="mb-3">
  <InputGroupAddon addonType="prepend">
      <InputGroupText><FaHSquare /></InputGroupText>
  </InputGroupAddon>
  <Select
    options={this.state.hospitals}
    name={this.state.hospitals}
  />                                            
</div>

enter image description here

由于目标受众,图像对我正在做的事情很重要。
编辑:

一个笨拙的解决方法是给 react-select className="form-control"然后设置样式以匹配 Bootstrap4。
<InputGroup className="mb-3">
  <InputGroupAddon addonType="prepend">
     <InputGroupText><FaHSquare /></InputGroupText>
  </InputGroupAddon>
  <Select className="form-control"
    options={this.state.hospitals}
    name={this.state.hospitals}
  />                                            
</InputGroup>

.css-2b097c-container {
    padding: 0px;
}

.css-yk16xz-control {
    background-color: #ffffff00 !important;
    border-style: none !important;
}

.css-1pahdxg-control {
    border-color: #80bdff !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

但这显然不是一个理想的解决方案。

CCS 更改导致以下结果,现在下拉菜单与普通选择输入相同,并且还匹配其他输入,例如文本输入。

enter image description here

最佳答案

对我有用的是将 Select 包装在一个带有“form-control”类的 div 中。它还需要一个零填充。

<div className="react-select form-control p-0">
    <Select />
</div>
Select 中的第一个 div 也需要 -1px 的边距。
.react-select > div {
    margin: -1px;
}

关于reactjs - 使用 Bootstrap "prepend"和 react-select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60411601/

相关文章:

reactjs - Swiper Slider Effect 在 React Js 中不起作用

react-select - 使用非多异步时,是否有用于在退格键上删除的 React-Select Prop ?

reactjs - React-Select 当值改变时触发 onChange

jquery - 将 Flickity 与 Bootstrap 4 轮播集成

html - 从左到右切换导航栏 Bootstrap

reactjs - 使用搜索 API 时,如何使用编辑项功能的初始选项加载 React-select Async?

css - 使用 CSS 模块时从父项覆盖样式的 'correct' 方法是什么?

javascript - 使用 mapStateToProps Jest 测试 promise 函数

reactjs - 无法转到完整日历上的特定日期

javascript - 使引导菜单在加载时可见