在 Gatsby 中使用多个布局或模板

Using multiple Layouts or Templates in Gatsby

我已经尝试使用 2 种模板和布局(全页和半页)设置 gatsby 至少 2 天了,但都没有用,我只得到一个没有任何元素的白页(除了像 div#___gatsby 和脚本这样的 gatsby 元素)。 这是 src/templates/half-page.jsx 代码

import React from "react";


export default class HalfPageTemplate extends React.Component {
    render() {
        return (
            <div>
                <div>Half-Page</div>
                {children()}
            </div>
        );
    }
}

这里是src/pages/index.jsx页面代码

import React from "react";
import HalfPageTemplate from "../templates/half-page"


class Index extends React.Component {
    render() {
        return (
            <Layout location={this.props.location}>
                <HalfPageTemplate>
                    <div>avc</div>
                </HalfPageTemplate>
                <div>some text</div>
            </Layout>
        );
    }
}

export default Index;

如果可以请帮忙

src/templates 是一个特定于 Gatsby 的文件夹(它希望那里有 gatsby-node.js 的文件)所以也许这会把事情搞砸。移动您的文件作为测试。其次你必须使用 this.props.children 而不是 children()