【发布时间】:2017-03-12 10:21:19
【问题描述】:
是否可以访问组件外部路由中提供的 URL 参数?
这当然可以通过 window.location 来完成,但我正在寻找 react-router API 中的一些东西来更干净地做到这一点。
此外,如果有更标准的方法来使用 GraphQL 执行此操作,那就更好了!我只是在研究 gql 的浏览器客户端和一般 gql 的新手。
示例组件:
import React from 'react';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
import get from 'lodash.get';
const ContractComponent = (props) => {
...
};
const ContractQuery = gql`query ContractQuery ($contractId: String!){
contract(id: $contractId) {
...
}
}`;
const ContractWithData = graphql(ContractQuery, {
options: { variables: { contractId: contractId } }, // <-- var i want to pull from url params
})(ContractComponent);
export default ContractWithData;
示例路线:
<Route path="contract/:contractId" component={Contract} />
【问题讨论】:
标签: reactjs react-router graphql