0

我正在 Gatsby.js 中创建一个博客,但我在转换它时遇到了问题

const TemplateWrapper = ({children}) => (
<div>
  <Helmet
    title="My website"
    meta={[
      { name: 'description', content: 'A brief history of myself' },
      { name: 'keywords', content: 'myself, cv' },
    ]}
  />
  <Header />
  <div>
    {children()}
  </div>
  <Footer/>
</div>)

到正常功能。我尝试创建 React.Component 类,但似乎没有得到孩子。我的目标是制作一个加载屏幕栏,这就是我想要转换它的原因。我试过这个

class Wrapper extends React.Component {

  constructor(props){
    super(props);
    this.state = {
      loading: true
    };
  }
  componentDidMount(){
    setTimeout(() => this.setState({ loading: false }), 2500); 
  }
  render(){
    const { loading } = this.state;
    if(loading){
      return <Loader/>
    }
    return(
      <TemplateWrapper/>
    );
  }
}

然后我导出了 Wrapper .. 但它似乎不起作用,它说孩子不是一个函数,它卡在加载图标 (Loader) 上。有什么办法可以解决这个问题?

笔记。当我导出默认 TemplateWrapper 时,一切正常!

4

0 回答 0