如何在reactJS中自定义reactstrap下拉列表

Par*_*ami 1 reactjs reactstrap

使用ReactJS创建了示例应用程序,并安装了reactstrap for boostrap。我在运行正常的应用程序中使用下拉组件。代码是

<Dropdown isOpen={this.state.dropdownOpen} toggle={this.toggle}>
    <DropdownToggle caret>
      Dropdown
    </DropdownToggle>
    <DropdownMenu>
      <DropdownItem>Another Action</DropdownItem>
      <DropdownItem>Another Action</DropdownItem>
    </DropdownMenu>
</Dropdown> 
Run Code Online (Sandbox Code Playgroud)

但是我必须改变。

像目前一样,他们只传递文字

。但

我必须通过图标,标题和副标题之类的3件事

所以我可以为这种类型的自定义更改DropdownItem.js代码吗?

我必须使下拉菜单与此图像类似http://prntscr.com/f34zoo

提前致谢

Sho*_*ota 5

可能有自定义菜单项:

官方网站指定:

<Dropdown isOpen={this.state.dropdownOpen} toggle={this.toggle}>
   <span
      onClick={this.toggle}
      data-toggle="dropdown"
      aria-haspopup="true"
      aria-expanded={this.state.dropdownOpen}
      >
   Custom Dropdown Content
   </span>
   <DropdownMenu>
      <div onClick={this.toggle}>
          <i class="some-icon"/>
          <h3>Some heading</h3>
          <p>Some sub heading</p>
      </div>
      <div onClick={this.toggle}>
          <i class="some-icon"/>
          <h3>Some heading</h3>
          <p>Some sub heading</p>
      </div>
      <div onClick={this.toggle}>
          <i class="some-icon"/>
          <h3>Some heading</h3>
          <p>Some sub heading</p>
      </div>
   </DropdownMenu>
</Dropdown>
Run Code Online (Sandbox Code Playgroud)


Kar*_*ran 5

有一个更好的方法来做到这一点。如果您希望下拉切换类似于:

<div>
  <span>{selectedShop ? selectedShop.shopCity : ''}</span>
  <FaChevronDown />
</div>
Run Code Online (Sandbox Code Playgroud)

那么你的 DropdownToggle 应该是这样的(见tag属性):

<DropdownToggle tag="div">
  <span>{selectedShop ? selectedShop.shopCity : ''}</span>
  <FaChevronDown />
</DropdownToggle>
Run Code Online (Sandbox Code Playgroud)

标签道具采用 html 标签来包装下拉切换内容。现在您可以以任何您想要的方式设置您的 div 样式。

注意:默认情况下tag是一个button.

现在,对于您的下拉项目。你可以简单地做这样的事情:

<DropdownItem onClick={() => onShopChange(shopToMap)}>
  <i class="some-icon" />
  <h3>Some heading</h3>
  <p>Some sub heading</p>{' '}
</DropdownItem>
Run Code Online (Sandbox Code Playgroud)

注意:即使DropdownItem你可以指定tag道具。