reactjs - 为什么在 Reactjs 中使用传播运算符传递道具
问题描述
我正在使用 Gatsbyjs,它在内部使用 Reactjs。
在文件中/layouts/index.js
,我有以下代码:
const Layout = ({...props, data}) => {
..........
}
export default Layout;
export const query = graphql`
query SiteTitleQuery {
site {
siteMetadata {
title
smallBreakPoint
}
}
}
`
更新
传入的数据是 GraphQL 查询返回的数据。不是道具里面的数据。
如果我删除了扩展运算符和/或 {},
const Layout = ({props, data}) => {
或者
const Layout = (...props, data) => {
它停止工作。为什么会这样?
解决方案
const Layout = ({ ...props, data }) =>
绝对等于
const Layout = (props) => {
const { data } = props
// `props` variable is still available here.
实际上,您只是将data
属性从其他道具中取出,而仍然可以使用道具
推荐阅读
- javascript - Next.js 应用程序在开发中工作,但在构建和部署期间失败
- javascript - 无法运行 forEach()
- node.js - 语法错误:意外的令牌 =
- html - 圆形 div 在较小尺寸上显示边缘
- jquery - 当动态div的高度大于1000px时,Jquery显示/隐藏div
- vue.js - Filepond mixed content error in production
- wordpress - How to reverse Wordpress date feed in twig / timber?
- game-maker - Game Maker WASD 和方向键平滑旋转?
- python - how to improve the calculation speed str to float
- machine-learning - Extract misclassified images using CNN keras