【发布时间】:2019-12-12 06:42:51
【问题描述】:
我想通过函数调用client.query,但是它不起作用。例如,当用户点击一个按钮时,我想调用一个名为handleClick的函数来获取查询下面是一个如何通过函数调用client.query的例子
class DelayedQuery extends Component {
state = { dog: null };
onDogFetched = dog => this.setState(() => ({ dog }));
handleClick = (client) => { //<-------I call the function
async () => {
const { data } = await client.query({
query: GET_DOG_PHOTO,
variables: { breed: "bulldog" }
});
this.onDogFetched(data.dog);
}
}
render() {
return (
<ApolloConsumer>
{client => (
<div>
{this.state.dog && <img src={this.state.dog.displayImage} />}
<button onClick={()=>this.handleClick(client) } > Click me! </button> // <-------I call handleClick
</div>
)}
</ApolloConsumer>
);
}
}
如何通过函数调用函数clinet.query?
【问题讨论】:
-
什么都没发生吗?或者你得到一个特定的错误?
-
是的,没有任何事情发生
-
您的代码会到达哪里?有没有到handleClick函数?
-
是的,和例子一模一样
-
不应该
handleClick = () => {是handleClick = client => {吗?否则,您不会将client传递给您的handleClick()函数。
标签: reactjs react-apollo apollo-client