【发布时间】:2019-08-05 11:36:50
【问题描述】:
我使用 antd 3.15 和 GraphQL 来获取数据并在 Menu 内生成一个 SubMenu 和 Menu.Item 的列表。但是,我收到了这样的错误消息Uncaught TypeError: Cannot read property 'isRootMenu' of undefined 我不知道我的代码有什么问题。 isRootMenu 不是文档中任何地方列出的道具。 ant.design/components/menu/#header 当我对所有 SubMenu 和 Menu.List 进行硬编码时,没有问题。我可以从 GraphQL 迭代数据以生成 SubMenu 和 Menu.List 吗?
有人可以帮我解决这个问题吗?谢谢!这是我的代码:
import * as React from 'react';
import './SideNav.scss';
import { Menu, Icon } from 'antd';
import gql from 'graphql-tag';
import { Query } from 'react-apollo';
const FLOORS_QUERY = gql`
query {
getAllFloors {
id
floorName
rooms {
id
roomName
roomNumber
roomDescription
}
}
}
`;
export default class SideNav extends React.Component {
render() {
return (
<Menu theme="light" defaultSelectedKeys={['1']} mode="inline">
<Query query={FLOORS_QUERY}>
{({ loading, error, data }) => {
if (loading) return <h4> loading... </h4>;
if (error) console.log(error);
console.log(data);
return (
<React.Fragment>
{data.getAllFloors.map((floor) => (
<SubMenu
key={floor.id}
title={
<span>
<Icon type="plus" />
<span>{floor.floorName}</span>
</span>
}
>
<React.Fragment>
{floor.rooms.map((room) => (
<Menu.Item key={room.id}>{room.roomNumber}</Menu.Item>
))}
</React.Fragment>
</SubMenu>
))}
</React.Fragment>
);
}}
</Query>
</Menu>
);
}
}
【问题讨论】:
-
你在代码中哪里使用
isRootMenu? -
isRootMenu不是文档中任何地方列出的道具。 ant.design/components/menu/#header@Vencovsky -
您是否在代码的其他部分使用它?
-
@Vencovsky 我在 App.tsx 中使用这个组件,当我硬编码所有的 SubMenu 和 Menu.Item 时没有问题......
标签: reactjs graphql frontend antd