【发布时间】:2018-05-23 15:46:06
【问题描述】:
我有这个代码:https://codesandbox.io/s/507w9qxrrl
我不明白:
1) 如何重新渲染() Menu 组件后:
this.props.client.query({
query: CURRENT_USER_QUERY,
fetchPolicy: "network-only"
});
如果我 login() 我希望我的 Menu 组件重新渲染() 本身。但什么都没有。如果我点击主页链接,它会重新渲染()。我怀疑是因为我正在使用它来渲染它:
<Route component={Menu} />
将它包含在 react-router 道具中。错了吗?
2) 如何防止Menu组件在未认证的情况下查询(例如:localStorage中没有token);我在Menu 组件中使用此代码:
export default graphql(CURRENT_USER_QUERY)(Menu);
3) 这是正确的方法吗?
【问题讨论】:
-
为什么要重新渲染组件?它不会,因为它没有使用内部使用 client.watchQuery 的 graphql HoC。 Yuu 正在使用 client.query 一次来获取一些数据。改变那条数据的更改不会触发重新渲染。
标签: reactjs react-native graphql apollo react-apollo