【问题标题】:admin on rest hide resource component in sidebaradmin on rest 隐藏侧边栏中的资源组件
【发布时间】:2018-06-15 19:31:14
【问题描述】:

我需要一个包含所有配置的资源,但我不希望它显示在侧边栏中

【问题讨论】:

    标签: reactjs admin-on-rest


    【解决方案1】:

    如果您想在侧边栏菜单中隐藏资源,可以省略该资​​源的 list 属性。

    <Resource name="posts" />
    

    【讨论】:

    • 解决方案很简单,适合我的情况。确实,省略 list 道具是可行的,您不必担心创建自定义菜单,直到您必须跨过那座桥的那一天。
    • 如果我省略了 list 属性,那么不会调用任何 URL 并且会出现一个空白页面
    【解决方案2】:

    我发现了一种不同的“hacky”方式 您可以在您的 css 中添加以下内容以从菜单中隐藏资源

    .MuiDrawer-root a[href^='#/resource-to-exclude'] {
        display: none;
    }
    

    【讨论】:

      【解决方案3】:

      如文档中所述,您可以使用 menu 属性将 Menu 组件提供给 Admin 组件。看 https://marmelab.com/react-admin/Admin.html#menu

      请注意,这个属性很快就会被appLayout 弃用,但无论如何你仍然会在你的自定义布局中使用这个自定义菜单。

      // in src/Menu.js
      import React from 'react';
      import { connect } from 'react-redux';
      import { MenuItemLink, getResources } from 'react-admin';
      import { withRouter } from 'react-router-dom';
      import Responsive from '../layout/Responsive';
      
      const Menu = ({ resources, onMenuClick, logout }) => (
          <div>
              {resources
                  .filter(resource => resource.name !== 'excluded-resource')
                  .map(resource => (
                      <MenuItemLink to={`/${resource.name}`} primaryText={resource.name} onClick={onMenuClick} />
                  ))
              }
              <Responsive
                  small={logout}
                  medium={null} // Pass null to render nothing on larger devices
              />
          </div>
      );
      
      const mapStateToProps = state => ({
          // Rerieve all known resources
          resources: getResources(state),
      });
      
      export default withRouter(connect(mapStateToProps)(Menu));
      

      【讨论】:

      猜你喜欢
      • 2017-05-16
      • 1970-01-01
      • 2014-10-18
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 2012-09-11
      • 2011-03-24
      相关资源
      最近更新 更多