像我以前使用Redux Store一样访问Apollo Store

时间:2017-12-04 10:39:40

标签: javascript reactjs react-redux apollo react-apollo

我在这里关注Apollo这个教程:https://github.com/howtographql/react-apollo/blob/master/src/components/Header.js

在他们拥有的Header.js文件中:

const userId = localStorage.getItem(GC_USER_ID)

在我看来有点难看:每次调用Header render()时都会从localStorage中读取?

使用react-redux我过去常常这样:

render() {
  const { authentication } = this.props;
  ...
}

const mapStateToProps = state => ({
  authentication: state.authentication
});

export default connect(mapStateToProps, { logoutAction })(Navbar);

如果我在每个render()读取localStorage并且让我说当我通过这个时我想在localStorage中存储我所有用户的数据(例如{username: "john", age: "15"})每次重新渲染时,const我的一个子组件,因为JSON.parse使它成为一个新对象!每次!

如何使用Apollo制作Redux商店?

1 个答案:

答案 0 :(得分:0)

Apollo用于管理状态的解决方案是通过apollo-link-state。这是一些general infodocs。设置好之后,可以在GraphQL查询中查询状态。

它还没有达到1.0版本,但是它是可用的,并且设置起来也很容易。他们的例子还不是很好。但是,如果您对GraphQL解析器有所了解,则设置起来非常简单。我正在成功使用here