Prop type `children` is invalid; it must be a function, usually from React.PropTypes

484
03 июня 2017, 18:19

Использую Gatsby js версии 1.0 для своего приложения. Консоль выдала ошибку:

Это странно, поскольку в компоненте для 'children' прописывается свойство о том, что они функции. Проблема в том, что это Gatsby-Starter-Blog, то есть это стартовый пакет, в котором почему-то вылазит баг и не собирается нормально проект. Я оставила им Issue, но всё еще жду ответ. Компонента ниже. Буду благодарна за любые идеи, что идет не так.

import React from "react"
import Link from "gatsby-link"
import { Container } from "react-responsive-grid"
import { rhythm, scale } from "../utils/typography"
class Template extends React.Component {
  render() {
    const { location, children } = this.props
    let header
    if (location.pathname === "/") {
      header = (
        <h1 >
          <Link to={"/"}>
            Gatsby Starter Blog
          </Link>
        </h1>
      )
    } else {
      header = (
        <h3>
          <Link to={"/"} >
            Gatsby Starter Blog
          </Link>
        </h3>
      )
    }
    return (
      <Container>
        {header}
        {children()}
      </Container>
    )
  }
}
Template.propTypes = {
  children: React.PropTypes.function,
  location: React.PropTypes.object,
  route: React.PropTypes.object,
}
export default Template
Answer 1

Свойства function у PropTypes нет... React.PropTypes.function, скорее всего вы хотели children: React.PropTypes.func. Если код Template ваш, то это ваша ошибка.

READ ALSO
Событие scroll : jquery

Событие scroll : jquery

Имеется блок header, и при скролле, когда header уже не видно, нужно сделать header фиксированным, чтобы его было постоянно видноЯ решил это так:

297
Javascript массив

Javascript массив

Помогите сделать вывод и правильно вписать массивВот задание: Дан массив целых чисел

319
Как сделать гамбургер меню только в мобильной версии?

Как сделать гамбургер меню только в мобильной версии?

Имеется готовый код на jquery, реализующий гамбургер меню в магазине на OpencartНо гамбургер функционирует при любом разрешении экрана, как можно...

673
keyCode не работает на Android Chrome

keyCode не работает на Android Chrome

Не работает keyCode в Android ChromeМне нужно отловить событие в поле ввода(input) тапа по запятой (",") или точке ("

301