Я просто попытался воспроизвести вашу проблему, и у меня это работает. Я выполнил следующие шаги:
- Создать новый сайт Gatsby:
npx gatsby new gatsby-site
- Создать сайт:
npm run build
- Запустить сайт:
npm run serve
Например, в компоненте Header
propTypes определены следующим образом:
Header.propTypes = {
siteTitle: PropTypes.string,
}
Header.defaultProps = {
siteTitle: ``,
}
При проверке готового сайта вы видите только defaultProps
, а не propTypes
, что правильно
var r = n("q1tI")
, o = n.n(r)
, i = n("Wbzz")
, a = function(e) {
var t = e.siteTitle;
return o.a.createElement("header", {
style: {
background: "rebeccapurple",
marginBottom: "1.45rem"
}
}, o.a.createElement("div", {
style: {
margin: "0 auto",
maxWidth: 960,
padding: "1.45rem 1.0875rem"
}
}, o.a.createElement("h1", {
style: {
margin: 0
}
}, o.a.createElement(i.Link, {
to: "/",
style: {
color: "white",
textDecoration: "none"
}
}, t))))
};
a.defaultProps = {
siteTitle: ""
};
var c = a;
Вы также можете проверить, установив siteTitle
на PropTypes.number
Header.propTypes = {
siteTitle: PropTypes.number,
}
При запуске в разработке с использованием npm run develop
вы увидите предупреждение в консоли
Failed prop type: Invalid prop `siteTitle` of type `string` supplied to `Header`, expected `number`.
Вы не увидите этого в рабочей среде при запуске npm run build && npm run serve
Примечание: propTypes
и defaultProps
- это нечто другое.
Проверяли ли вы также свою версию Gatsby ? Возможно, вы используете более старую версию
Я пробовал использовать эти версии (последние на момент публикации)
"dependencies": {
"gatsby": "^2.24.26",
"gatsby-image": "^2.4.14",
"gatsby-plugin-manifest": "^2.4.21",
"gatsby-plugin-offline": "^3.2.21",
"gatsby-plugin-react-helmet": "^3.3.10",
"gatsby-plugin-sharp": "^2.6.24",
"gatsby-source-filesystem": "^2.3.23",
"gatsby-transformer-sharp": "^2.5.12",
"prop-types": "^15.7.2",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^6.1.0"
},