gatsby - 如何在 Gatsby 中获取当前 url?
问题描述
我目前正在使用 Gatsby 创建共享按钮,并希望根据当前 url 共享内容,该 url 会根据环境和当前页面而变化。使用 GoHugo,可以使用{{ .Permalink }}
. 有谁知道如何用盖茨比做到这一点?
我有一个 ShareButtons 组件,它是 BlogPostTemplate 的子组件。
解决方案
location
您可以使用组件中的prop获取当前 url @reach/router
Location
。
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { Location } from '@reach/router';
class SomeComponent extends Component {
static propTypes = {
location: PropTypes.object.isRequired
}
render() {
const { location } = this.props;
return <div>{JSON.stringify(location)}</div>;
}
}
export default props => (
<Location>
{locationProps => <SomeComponent {...locationProps} {...props} />}
</Location>
);
推荐阅读
- php - 使用 Prestashop API 获取多个产品 URL
- r - 概率密度函数的 AIC
- spring - Spring Data Flow 和 Spring Cloud Stream 是我使用 Choreography 方法构建数据处理管道所需要的吗?
- ionic-framework - 如何在桌面浏览器上将我的 PWA 显示为移动应用程序
- sql - 尝试将文本文件加载到 sql 表中时缺少对象或列名
- r - 如何计算波形中脉冲的宽度?
- c# - 尝试在 C# 中访问 Sqlite 数据库
- c++ - DLL 库中相同的静态变量和全局变量
- android - 从资源 id 整数获取颜色给出错误
- mongodb - Ubuntu 16.04 mongo DB 安装失败