antd中Drawer组件使用getContainer方法获取dom节点时初次获取到的是null问题完美解决

/* eslint-disable no-console,react/no-multi-comp */
import Drawer from 'rc-drawer';
import React from 'react';
import ReactDom from 'react-dom';
import { Menu, Icon } from 'antd';

import 'antd/lib/style';
import 'antd/lib/menu/style';

import 'rc-drawer/assets/index.less';
import './assets/index.less';

const { SubMenu } = Menu;
const MenuItemGroup = Menu.ItemGroup;

class DrawerTester extends React.Component {
  getContainer = () => {
    return this.container;
  };
  saveContainer = container => {
    this.container = container;
  };
  render() {
    return (
      <div>
        <div ref={this.saveContainer} />
        <Drawer
          width="20vw"
          getContainer={this.getContainer}
        >
          <Menu
            defaultSelectedKeys={['1']}
            defaultOpenKeys={['sub1']}
            mode='inline'
          >
            <SubMenu
              key='sub1'
              title={
                <span>
                  <Icon type='mail' />
                  <span>Navigation One</span>
                </span>
              }
            >
              <MenuItemGroup key='g1' title='Item 1'>
                <Menu.Item key='1'>Option 1</Menu.Item>
                <Menu.Item key='2'>Option 2</Menu.Item>
              </MenuItemGroup>
              <MenuItemGroup key='g2' title='Item 2'>
                <Menu.Item key='3'>Option 3</Menu.Item>
                <Menu.Item key='4'>Option 4</Menu.Item>
              </MenuItemGroup>
            </SubMenu>
            <SubMenu
              key='sub2'
              title={
                <span>
                  <Icon type='appstore' />
                  <span>Navigation Two</span>
                </span>
              }
            >
              <Menu.Item key='5'>Option 5</Menu.Item>
              <Menu.Item key='6'>Option 6</Menu.Item>
              <SubMenu key='sub3' title='Submenu'>
                <Menu.Item key='7'>Option 7</Menu.Item>
                <Menu.Item key='8'>Option 8</Menu.Item>
              </SubMenu>
            </SubMenu>
            <SubMenu
              key='sub4'
              title={
                <span>
                  <Icon type='setting' />
                  <span>Navigation Three</span>
                </span>
              }
            >
              <Menu.Item key='9'>Option 9</Menu.Item>
              <Menu.Item key='10'>Option 10</Menu.Item>
              <Menu.Item key='11'>Option 11</Menu.Item>
              <Menu.Item key='12'>Option 12</Menu.Item>
            </SubMenu>
          </Menu>
        </Drawer>
      </div>
    );
  }
}

ReactDom.render(<DrawerTester />, document.getElementById('__react-content'));
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值