【发布时间】:2019-11-30 00:39:59
【问题描述】:
我正在制作一个 React 页面,其顶部有一个 AppBar,下方有一个 SplitPane,以便用户可以编辑和预览内容并调整大小。问题是 SplitPane 似乎在调整自身的大小,就好像 AppBar 不存在一样,这使 UI 非常混乱:SplitPane 中的两个窗格都是可滚动的,然后根视图也是可滚动的。我只希望窗格可以滚动。
我用 react-split-pane 和 react-splitter-layout 都试过了,但我都遇到了这个问题。 (实际上我更喜欢 react-splitter-layout,因为它开箱即用,看起来不错,但我看到 react-split-pane 使用更广泛。我怀疑一个修复程序也适用于另一个。)
我尝试使用 CSS 将 SplitPane 及其父级的高度设置为 calc(100% - ${appBarHeight}px)(基于 Material UI 执行 Drawer 的方式),但没有成功。我试过用各种 CSS(设置高度、弹性、显示)和 Material UI 的 Box 将它包装在 div 中,但到目前为止没有任何效果。
我能够通过将 AppBar 放入其中一个窗格来破解解决方案,但这显然是一个糟糕的选择,因为窗格只是众多屏幕之一,我不想到处复制它。
这是一个简单的例子,展示了我遇到的问题:
import React from 'react';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import SplitPane from 'react-split-pane';
function App() {
return (
<div className="App">
<AppBar position="static" color="default">
<Toolbar>
<Typography variant="h6" color="inherit">
Photos
</Typography>
</Toolbar>
</AppBar>
<SplitPane>
<div>A</div>
<div>B</div>
</SplitPane>
</div>
);
}
export default App;
所以我对上面的期望是最终得到一个标题为“照片”的页面,一个带有“A”的垂直窗格,一个带有“B”的垂直窗格,并且没有滚动条,因为内容很短.相反,整个页面都会显示一个滚动条,您可以向下滚动 AppBar 的高度。我该如何解决这个问题?
【问题讨论】:
标签: reactjs material-ui