首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Antd布局组件不能很好地与SSR配合使用

Antd布局组件不能很好地与SSR配合使用
EN

Stack Overflow用户
提问于 2018-01-04 17:01:40
回答 1查看 694关注 0票数 0

我开始使用Antd和react-starter-kit来构建管理模板

如果我禁用javascript,我会得到这样的结果

但是启用了js后,我得到了正确的js。

同样,当第一次加载页面时,它会从1快速变为2(在启用js的情况下)

这是react组件

代码语言:javascript
运行
复制
class Layout extends React.Component {
  static propTypes = {
    children: PropTypes.node.isRequired
  };

  constructor(props) {
    super(props);
    this.state = {
      siderFold: false
    };
    this.switchSider = this.switchSider.bind(this);
  }

  switchSider() {
    this.setState({
      siderFold: !this.state.siderFold
    });
  }

  render() {
    return (
      <div>
        <AntDLayout>
          <AntDLayout.Sider
            className={s.sider}
            trigger={null}
            collapsible
            collapsed={this.state.siderFold}
          >
            <Sidebar siderFold={this.state.siderFold} />
          </AntDLayout.Sider>
          <AntDLayout className={s.layout}>
            <Header
              siderFold={this.state.siderFold}
              switchSider={this.switchSider}
            />
            <AntDLayout.Content>{this.props.children}</AntDLayout.Content>
          </AntDLayout>
        </AntDLayout>
      </div>
    );
  }
}

我尝试为.ant-layout类禁用这些样式

代码语言:javascript
运行
复制
display: -webkit-box; 
display: -webkit-flex; 
display: -ms-flexbox;
display: flex;

我得到了第一张图片的结果,所以我猜它与SSR上的flex有关,对此有帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-25 15:54:51

使用最新版本的antd,只需添加hasSider属性即可解决此问题。

示例:

之前:

代码语言:javascript
运行
复制
<AntDLayout>
    // other components.
</AntDLayout>

之后:

代码语言:javascript
运行
复制
<AntDLayout hasSider>
    // other components.
</AntDLayout>

查看关于完全相同的内容的问题:https://github.com/ant-design/ant-design/issues/8604

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48091812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档