使用
graphql
高阶分量
这个
您调用的函数返回一个高阶组件,然后可以使用该组件包装另一个React组件。它不会像你试图做的那样回报一个可以等待的承诺。
您已经在这里(或多或少)正确地使用了它:
export default graphql(getTransactionsQuery)(App)
当您用
图形QL
就像这样,您的组件接收一个
data
render() {
const { transactions } = this.props.data
const transactionItems = transactions
? transactions.map(t => <li key={t.id}>{t}</li>)
: null
return (
<div className="App">
<button onClick={() => this.refreshData()}> Refresh Data </button>
<ul>{ transactionItems }</ul>
</div>
);
}
data.transactions
将在获取查询之前最初未定义,因此在渲染函数中注意这一点很重要。您也可以检查
data.loading
以确定查询是否仍在进行中。请检查阿波罗文件(
here
)更多示例。
图形QL
功能如下:
导出默认graphql(getTransactionsQuery,{options:{variables:{id:'youridhere'}}})(应用程序)
选项通常传递给对象,但也可以传递给函数。此函数需要
props
const options = props => ({ variables: { id: props.id } })
export default graphql(getTransactionsQuery, { options })(App)
检查
here
了解更多信息。
重新蚀刻数据
数据
通过调用传递到组件的道具
props.data.refetch()
. 您可以阅读有关重新蚀刻的更多信息
here
.