如何在 reactJS 中自定义 reactstrap 下拉菜单
How customize reactstrap dropdown in reactJS
使用 ReactJS 创建示例应用程序并为 boostrap 安装 reactstrap。我在工作正常的应用程序中使用下拉组件。代码是
<Dropdown isOpen={this.state.dropdownOpen} toggle={this.toggle}>
<DropdownToggle caret>
Dropdown
</DropdownToggle>
<DropdownMenu>
<DropdownItem>Another Action</DropdownItem>
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</Dropdown>
但我必须改变。
Like currently they passing text only
。但是
I have to pass 3 things like icon,heading and sub heading
我可以更改 DropdownItem.js 此类自定义代码吗?
我必须制作类似于此图片的下拉菜单 http://prntscr.com/f34zoo
提前致谢
可以有自定义菜单项:
在the official website上指定:
<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>
有更好的方法。
如果您希望下拉切换为:
<div>
<span>{selectedShop ? selectedShop.shopCity : ''}</span>
<FaChevronDown />
</div>
那么你的 DropdownToggle 应该是这样的(见 tag
属性):
<DropdownToggle tag="div">
<span>{selectedShop ? selectedShop.shopCity : ''}</span>
<FaChevronDown />
</DropdownToggle>
标签属性采用 html 标签来包装下拉切换内容。现在你可以随心所欲地设计你的 div。
注意:默认情况下 tag
是 button
。
现在,为您的下拉项目。你可以简单地做这样的事情:
<DropdownItem onClick={() => onShopChange(shopToMap)}>
<i class="some-icon" />
<h3>Some heading</h3>
<p>Some sub heading</p>{' '}
</DropdownItem>
注意:即使对于 DropdownItem
,您也可以指定 tag
prop.
使用 ReactJS 创建示例应用程序并为 boostrap 安装 reactstrap。我在工作正常的应用程序中使用下拉组件。代码是
<Dropdown isOpen={this.state.dropdownOpen} toggle={this.toggle}>
<DropdownToggle caret>
Dropdown
</DropdownToggle>
<DropdownMenu>
<DropdownItem>Another Action</DropdownItem>
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</Dropdown>
但我必须改变。
Like currently they passing text only
。但是
I have to pass 3 things like icon,heading and sub heading
我可以更改 DropdownItem.js 此类自定义代码吗?
我必须制作类似于此图片的下拉菜单 http://prntscr.com/f34zoo
提前致谢
可以有自定义菜单项:
在the official website上指定:
<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>
有更好的方法。 如果您希望下拉切换为:
<div>
<span>{selectedShop ? selectedShop.shopCity : ''}</span>
<FaChevronDown />
</div>
那么你的 DropdownToggle 应该是这样的(见 tag
属性):
<DropdownToggle tag="div">
<span>{selectedShop ? selectedShop.shopCity : ''}</span>
<FaChevronDown />
</DropdownToggle>
标签属性采用 html 标签来包装下拉切换内容。现在你可以随心所欲地设计你的 div。
注意:默认情况下 tag
是 button
。
现在,为您的下拉项目。你可以简单地做这样的事情:
<DropdownItem onClick={() => onShopChange(shopToMap)}>
<i class="some-icon" />
<h3>Some heading</h3>
<p>Some sub heading</p>{' '}
</DropdownItem>
注意:即使对于 DropdownItem
,您也可以指定 tag
prop.