gpt4 book ai didi

javascript - 如何修复 "TypeError: _this is undefined"

转载 作者:行者123 更新时间:2023-12-01 00:36:27 25 4
gpt4 key购买 nike

我正在使用 Gatsby 构建一个网站,现在我正在创建一个 blog-post.js 文件,该文件通过来自 Markdown 文件的 graphql 数据进行查询并为每个文件创建页面。它还应包括页眉、页脚和预定义的 GridItem,内容应在其中呈现。

但是由于以下原因,GridItem 未按预期呈现:

"TypeError: _this is undefined".

我对 Javascript 还很陌生,我已经发现问题出在这两个

  • const post = data.markdownRemark,
  • { 类,...rest } = this.props;

因为如果我只使用其中一个,那么所有的都工作正常。

import React from "react"
import { graphql } from "gatsby"
import GridItem from "components/Grid/GridItem.jsx";
import GridContainer from "components/Grid/GridContainer.jsx";
import Footer from "components/Footer/Footer.jsx";
import Header from "components/Header/Header.jsx";
import HeaderLinks from "components/Header/HeaderLinks.jsx";
import Parallax from "components/Parallax/Parallax.jsx";
import classNames from "classnames";


export default ({ data }) => {
const post = data.markdownRemark,
{ classes, ...rest } = this.props;
return (
<div>
<Header
brand="diemax"
rightLinks={<HeaderLinks />}
fixed
color="transparent"
changeColorOnScroll={{
height: 400,
color: "white"
}}
{...rest}
/>
<Parallax small filter image={require("assets/img/profile-bg.jpg")} />
<div className={classNames(classes.main, classes.mainRaised)}>
<div>
<div className={classes.container}>
<GridContainer justify="center">
<GridItem xs={12} sm={12} md={6}>
<div className={classes.title}>
<h1>{post.frontmatter.title}</h1>
</div>
<div dangerouslySetInnerHTML={{ __html: post.html }} />
</GridItem>
</GridContainer>
</div>
</div>
</div>
<Footer />
</div>
)
}

export const query = graphql`
query($slug: String!) {
markdownRemark(fields: { slug: { eq: $slug } }) {
html
frontmatter {
title
}
}
}
`

最佳答案

问题就在这里

{ classes, ...rest } = this.props;

您使用功能组件。所以你在 this 中没有对组件实例的引用。您必须访问 Prop ,如下所示:

export default ({ data, props }) => {
const post = data.markdownRemark,
{ classes, ...rest } = props;

关于javascript - 如何修复 "TypeError: _this is undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com