反应仪表板问题

我创建了一个React应用。对于仪表板样式,我正在使用Antd如果单击仪表板项目,我不知道如何显示不同的组件,它将显示在一个画布中。

我创建了一个搜索按钮,并且还想显示结果,使用相同的画布。

我想制作一个像这个演示这样的应用程序

   import React, { useState } from "react";
import "./App.css";
import Table from "./Table";
import AddTableComponent from "./AddTableComponent";
import { Layout, Avatar, Menu, Icon, Breadcrumb, Button, Input } from "antd";
import Title from "antd/lib/typography/Title";
const { Header, Footer, Sider, Content } = Layout;
const { Search } = Input;
function App() {
  const [state, setState] = useState({
    collapsed: false,
    table: false,
    add: false,
    course: false,
    info: false
  });

  const onCollapse = collapsed => {
    setState({ ...state, collapsed });
  };

  const handleMenuClick = event => {
    setState({
      ...state,
      [event]: !state[event]
    });
  };
  return (
    <div className="App">
      <Layout>
        <Header style={{ padding: 10 }}>
          <Avatar style={{ float: "right" }} src="./dp.png" />
          <Title style={{ color: "white" }} level={3}>
            Student data
          </Title>
          <div style={{ paddingLeft: "900px" }}>
            <Search
              placeholder="input search text"
              onSearch={value => console.log(value)}
              style={{ width: 200 }}
            />
          </div>
        </Header>
        <Layout>
          <Sider
            collapsible
            collapsed={state.collapsed}
            onCollapse={onCollapse}
          >
            <Menu
              theme="dark"
              mode="inline"
              defaultSelectedKeys={["4"]}
              onClick={handleMenuClick}
            >
              <Menu.Item key="table">
                <span className="nav-text">Student table</span>
              </Menu.Item>
              <Menu.Item key="add">
                <span className="nav-text">Add student</span>
              </Menu.Item>
              <Menu.Item key="course">
                <span className="nav-text">Course</span>
              </Menu.Item>
              <Menu.Item key="info">
                <span className="nav-text" link="/Check.js">
                  Information table
                </span>
              </Menu.Item>
            </Menu>
          </Sider>
          <Layout>
            <Content style={{ padding: "0 50px" }}>
              <Breadcrumb style={{ margin: "16px 0" }}>
                <Breadcrumb.Item>Data</Breadcrumb.Item>
              </Breadcrumb>
              <div style={{ background: "#fff", padding: 24, minHeight: 580 }}>
                HERO DASHBOARD //THIS IS THE DASH BOARD, I WANT SHOW ALL DATA
                WHEN I WILL CLICK MENU ITEM(Student table,Add
                student,Course,Information table AS WELL THE SEARCH BUTTON)
              </div>
              {state.table && <Table />}
              {state.add && <AddTableComponent />}
            </Content>
            <Footer style={{ textAlign: "center" }}>Copy right-alakdam</Footer>
          </Layout>
        </Layout>
      </Layout>
    </div>
  );
}

export default App;

例如:当用户单击学生表时,我想在一个仪表板上显示以下数据:

import React from "react";

export default function Check() {
  return (
    <div>
      <table>
        <tr>
          <td>Cell A</td>
          <td>Cell B</td>
        </tr>
      </table>
    </div>
  );
}

到目前为止,这是我所做的:

在此处输入图片说明

杰克

好吧,由于该<Menu>组件采用了onclick处理程序,因此您基本上可以仅将其与状态结合使用以显示您的组件。这使用键来引用状态。显然,您需要用页面组件替换这些组件。如果您查看文档,它将使您可以浏览菜单代码,并且可以看到onclick处理程序的工作方式。

import React, { useState } from 'react';
import './App.css';
import Table from './Table';
import AddTableComponent from './AddTableComponent';
import { Layout, Avatar, Menu, Breadcrumb, Input } from 'antd';
import Title from 'antd/lib/typography/Title';
const { Header, Footer, Sider, Content } = Layout;
const { Search } = Input;
function App() {
  const [state, setState] = useState({
    collapsed: false,
    table: false,
    add: false,
    course: false,
    info: false
  });

  const onCollapse = collapsed => {
    setState({ ...state, collapsed });
  };

    const handleMenuClick = event => {
    console.log('event: ', event);
    setState({
      ...state,
      table: false,
      add: false,
      course: false,
      info: false,
      [event.key]: !state[event.key]
    });
  };

  return (
    <div className="App">
      <Layout>
        <Header style={{ padding: 10 }}>
          <Avatar style={{ float: 'right' }} src="./dp.png" />
          <Title style={{ color: 'white' }} level={3}>
            Student data
          </Title>
          <div style={{ paddingLeft: '900px' }}>
            <Search
              placeholder="input search text"
              onSearch={value => console.log(value)}
              style={{ width: 200 }}
            />
          </div>
        </Header>
        <Layout>
          <Sider
            collapsible
            collapsed={state.collapsed}
            onCollapse={onCollapse}
          >
            <Menu
              theme="dark"
              mode="inline"
              defaultSelectedKeys={['4']}
              onClick={handleMenuClick}
            >
              <Menu.Item key="table">
                <span className="nav-text" href="./">
                  Student table
                </span>
              </Menu.Item>
              <Menu.Item key="add">
                <span className="nav-text">Add student</span>
              </Menu.Item>
              <Menu.Item key="course">
                <span className="nav-text">Course</span>
              </Menu.Item>
              <Menu.Item key="info">
                <span className="nav-text" link="/Check.js">
                  Information table
                </span>
              </Menu.Item>
            </Menu>
          </Sider>
          <Layout>
            <Content style={{ padding: '0 50px' }}>
              <Breadcrumb style={{ margin: '16px 0' }}>
                <Breadcrumb.Item>Data</Breadcrumb.Item>
              </Breadcrumb>
              <div style={{ background: '#fff', padding: 24, minHeight: 580 }}>
                {state.table && <Table />}
                {state.add && <AddTableComponent />}
              </div>
            </Content>
            <Footer style={{ textAlign: 'center' }}>Copy right-alakdam</Footer>
          </Layout>
        </Layout>
      </Layout>
    </div>
  );
}

export default App;

您的表格组件应该看起来像

import React from 'react';

const Table = () => {
  return (
    <div>
      <table>
        <tbody>
          <tr>
            <td>Cell A</td>
            <td>Cell B</td>
          </tr>
        </tbody>
      </table>
    </div>
  );
};

export default Table;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Datastax Opscenter问题:仪表板超时

来自分类Dev

ActiveAdmin仪表板中的格式问题

来自分类Dev

Kubernetes api/仪表板问题

来自分类Dev

带有链接的闪亮仪表板反应表

来自分类Dev

仪表板片段

来自分类Dev

木偶仪表板:RHEL 6上的依赖关系问题

来自分类Dev

超集仪表板中图表的定位问题

来自分类Dev

闪亮的仪表板:仪表板中的粘性页脚

来自分类Dev

闪亮的仪表板:仪表板中的粘性页脚

来自分类Dev

Shinydashboard中的仪表板

来自分类Dev

访问Kubernetes仪表板

来自分类Dev

仪表板的单独模板

来自分类Dev

解析仪表板设置

来自分类Dev

分析仪表板

来自分类Dev

季度NPS仪表板

来自分类Dev

升级 AKS 仪表板?

来自分类Dev

Jira 仪表板组织

来自分类Dev

闪亮的Flexdashboard中的反应性uiOutput-杀死整个仪表板吗?

来自分类Dev

闪亮的仪表板-带有复选框值的反应条形图

来自分类Dev

闪亮的Flexdashboard中的反应性uiOutput-杀死整个仪表板吗?

来自分类Dev

为什么没有在闪亮仪表板中开始计算闪亮的反应值

来自分类Dev

Laravel 7中的路由问题在仪表板文件夹中的文件夹名称仪表板中查看新文件夹admin

来自分类Dev

Prestashop 1.7重定向到管理仪表板问题

来自分类Dev

从1.7升级到1.8后的Magento仪表板问题

来自分类Dev

启动Spring Cloud Hystrix仪表板示例时遇到问题

来自分类Dev

仪表板外观问题中的WordPress自定义主题帖子类型

来自分类Dev

从管理仪表板通过电子邮件发送附件的问题

来自分类Dev

iCloud/CloudKit 仪表板问题与遥测、日志、使用情况显示、订阅、通知

来自分类Dev

仪表板链接小部件