reactjs - 如何在 JSX 的 HTML 中使用局部变量?
问题描述
如何meta=data.site.siteMetadata
在下面的 Gatsby 代码中使用本地变量?Var/Const/$ 似乎不起作用。我想使用这个meta
var 而不是data
import React from "react"
import { graphql } from "gatsby"
export default ({ data }) => (
<div>
<h1>About {data.site.siteMetadata.title}</h1>
<p>We're a very cool website you should return to often.</p>
</div>
)
export const query = graphql`
query {
site {
siteMetadata {
title
}
}
}
`
我怎样才能使以下工作:
import React from "react"
import { graphql } from "gatsby"
export default ({ data }) => (
<div>
{var meta=data.site.siteMetadata}
<h1>About {meta.title}</h1>
<p>We're a very cool website you should return to often.</p>
</div>
)
export const query = graphql`
query {
site {
siteMetadata {
title
}
}
}
`
解决方案
我认为这个问题是关于React
而不是Gatsby
具体的:
一个如何在功能组件中使用局部变量的简单示例:
const MyComponent = ({ data }) => {
const myLocalVariable = data.site.siteMetadata.title;
return (
<div>
<h1>About {myLocalVariable}</h1>
<p>We're a very cool website you should return to often.</p>
</div>
);
};
export default MyComponent;
有关更多详细信息,您的graphql
查询将返回下一个对象:
{
"data": {
"site": {
"siteMetadata": {
"title": "My Site Title"
}
}
}
}
因此,在您的情况下,您可以执行以下操作:
import React from 'react';
import { graphql } from 'gatsby';
export default ({ data }) => {
// meta is an object.
const meta = data.site.siteMetadata;
return (
<div>
<h1>About {meta.title}</h1>
<p>We're a very cool website you should return to often.</p>
</div>
);
};
export const query = graphql`
query {
site {
siteMetadata {
title
}
}
}
`;
您应该阅读 React 文档中的入门部分,Gatsby是 React 的站点生成器,因此事先了解所有 React 概念非常重要。
推荐阅读
- ruby - 如何将 strftime 用于日期时间?
- java - Selenium - 如果发生灾难性错误,则优雅地中止测试 - 但生成测试报告
- php - Laravel PHP表单提交,显示结果时破坏文本?
- java - 为什么 nextLine() 跳过第一个输入但没有其他输入?
- python - 枕头 - 如何用阈值对图像进行二值化?
- azure-devops - 使用 DotNetCLI 测试任务和 cobertura 工具收集、转换和发布覆盖率时如何在 azure DevOps 中获得 PR 差异覆盖率
- javascript - 我无法让透视相机跟随玩家。相机卡在世界原点
- easyadmin3 - EasyAdmin 3 如何根据查询从操作 createEntity 设置关联
- android - Android:如何创建这样的滑动底部导航栏?
- python - 如何使用 iat 将元组分配给单元格?