在生产模式下构建 react-bootstrap 后,我遇到了下拉菜单显示不正确的问题:
经过仔细检查,看起来 HTML 加载了错误的类:<ul role="menu" class="super-colors -menu" aria-labelledby="dropdown-custom-1">
. 在这种情况下,类应该是dropdown-menu
而不是-menu
。
当我检查道具元素时,看起来这是由于bsClass
设置不正确引起的:
{
"className": "super-colors",
"bsRole": "menu",
"pullRight": false,
"bsClass": "-menu",
"open": false,
"labelledBy": "dropdown-custom-1",
"onClose": "[function bound ]",
"onSelect": "[function ]",
"rootCloseEvent": "mousedown"
}
作为参考,这里是上面显示的元素的代码:
<ButtonToolbar>
<Dropdown
id="dropdown-custom-1"
onToggle={() => console.log('hi')}
rootCloseEvent="mousedown"
>
<Dropdown.Toggle>Pow! Zoom!</Dropdown.Toggle>
<Dropdown.Menu className="super-colors">
<MenuItem eventKey="1">Action</MenuItem>
<MenuItem eventKey="2">Another action</MenuItem>
<MenuItem eventKey="3" active>
Active Item
</MenuItem>
<MenuItem divider />
<MenuItem eventKey="4">Separated link</MenuItem>
</Dropdown.Menu>
</Dropdown>
</ButtonToolbar>
其他一些(可能)相关信息:
- 我们正在使用一个名为 patternfly-react 的 UI 库,它构建在 react-bootstrap 之上,但问题似乎出在 react-bootstrap 中。
- 该应用程序使用 react-bootstrap 0.32.1
- 这仅在应用程序以生产模式构建时显示,开发模式工作正常。
- 我们有一个非常规的设置,我们在 Angular 6 应用程序中运行 React。
任何人都知道可能导致这种情况发生的原因?