Ant-design-pro: 🐛[BUG]多语言切换时AvatarDropdown组件下拉项未变化

Created on 29 Oct 2019  ·  2Comments  ·  Source: ant-design/ant-design-pro

🐛 bug 描述


在使用 umi 创建的 antd-pro 项目中,在 GlobalHeader 组件中的 AvatarDropdown 组件在多语言切换时未进行语言的切换,刷新后则显示正常。

📷 复现步骤

  1. 使用 create-umi 进行项目搭建;
  2. $ yarn 进行依赖安装;
  3. 启动项目,进入到 BasicLayout 布局页面;
  4. 查看 AvatarDropdown 下拉,切换多语言后,再次查看 AvatarDropdown 下拉,发现并未按所选语言进行切换;
  5. 刷新当前页面后,显示正常。

🏞 期望结果


在进行多语言切换时, AvatarDropdown 组件下拉项可以准确实时地进行语言的切换。

💻 复现代码

onMenuClick = (event: ClickParam) => {
    const { key } = event;

    if (key === 'logout') {
      removeToken()
      router.push('/user/login')
      return;
    }
    router.push(`/account/${key}`);
  };

  render(): React.ReactNode {
    const { currentUser = { avatar: '', name: '' }, menu } = this.props;
    console.log(currentUser)

    const menuHeaderDropdown = (
      <Menu className={styles.menu} selectedKeys={[]} onClick={this.onMenuClick}>
        {menu && (
          <Menu.Item key="center">
            <Icon type="user" />
            <FormattedMessage id="menu.account.center" defaultMessage="account center" />
          </Menu.Item>
        )}
        {menu && (
          <Menu.Item key="settings">
            <Icon type="setting" />
            <FormattedMessage id="menu.account.settings" defaultMessage="account settings" />
          </Menu.Item>
        )}
        {menu && <Menu.Divider />}

        <Menu.Item key="logout">
          <Icon type="logout" />
          <FormattedMessage id="menu.account.logout" defaultMessage="logout" />
        </Menu.Item>
      </Menu>
    );

    return currentUser && currentUser.name ? (
      <HeaderDropdown overlay={menuHeaderDropdown}>
        <span className={`${styles.action} ${styles.account}`}>
          <Avatar size="small" className={styles.avatar} src={currentUser.avatar} alt="avatar" />
          <span className={styles.name}>{currentUser.name}</span>
        </span>
      </HeaderDropdown>
    ) : (
      <Spin size="small" style={{ marginLeft: 8, marginRight: 8 }} />
    );
  }

© 版本信息

  • Ant Design Pro 版本: 4.0.0
  • umi 版本: 2.9.6
  • 浏览器环境: Chrome 78.0.3904.70
  • 开发环境: Win10

🚑 其他信息


初始状态:
image

image

切换语言后:
image
image

👨🏼‍🌾 FAQ 🛑 bug

Most helpful comment

这个也是万人坑了, @chenshuai2144 来整理一下 FAQ 解决方案。

All 2 comments

这个也是万人坑了, @chenshuai2144 来整理一下 FAQ 解决方案。

遇到同样问题,调用setLocale(lang,false); 第二个参数不刷新页面,页面语言只是部分切换,没有全部切换语言。虽然页面页面不刷新的效果是有的。

Was this page helpful?
0 / 5 - 0 ratings