【发布时间】:2019-12-09 01:39:21
【问题描述】:
当我尝试使用 router.query.xxx 访问查询字符串时,我的组件中的 GraphQL 查询未在动态路由上运行。
我有以下文件
// ./pages/section/[slug].js
import { useRouter } from 'next/router';
import AppLayout from '../../components/styles/_AppLayout';
const Section = () => {
const router = useRouter();
return <AppLayout>Hi</AppLayout>;
};
export default Section;
页面显示正常,但只要我添加 {router.query.slug} 并刷新页面,它就会给我一个 TypeError,因为 GraphQL 查询没有运行。如下图所示,me.firstName 未定义,因为 GraphQL 查询没有运行
这是_AppLayout.js中的代码
import styled from 'styled-components';
import Navigation from '../Navigation';
const Wrapper = styled.div`...`;
const AppLayout = props => {
return (
<Wrapper>
<Navigation />
<main>{props.children}</main>
</Wrapper>
);
};
export default AppLayout;
任何想法为什么会发生这种情况以及如何解决它?
谢谢
【问题讨论】:
-
您的“我”对象为空或为空,这就是您收到错误的原因。在渲染之前尝试 console.log(me) 看看你需要的一切是否在对象“me”中可用
标签: reactjs graphql next.js prisma prisma-graphql