我的组件需要调用一个 graphql 查询,但它需要只能由 redux 使用的变量。所以我已经映射了 redux 的连接来反应阿波罗组合。但是我在从reducer获取数据时遇到问题,并且调用未正确加载。
class abc extends Component {
componentWillMount() {
console.log(this.props.variableData); // Getting empty object.
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ variableDataFetchAction }, dispatch);
}
function mapStateToProps(state) {
return {
variableData: state.reducerName.variableData,
}
}
export default compose(
connect(mapStateToProps, mapDispatchToProps),
graphql(MyQuery, {
options: props => {
return {
.....,
variables: props.variableData,
};
},
}),
)(abc);
我需要知道我可以重新使用的方式是否存在问题。因为我的店里好像空了。
需要明确的是,你不需要react-apollo
调用 GraphQL api 端点。
在您的情况下,您正在使用 2 个处理其自己的存储的库(假设您使用的是Apollo Client 2
(。Redux具有Redux Store
,Apollo正在使用InMemoryCache
进行缓存。
您通过graphql
获取的内容存储在 Apollo 缓存中,您可以使用Apollo Client Developer Tools
Chrome 扩展程序来检查其内容。
如果要通过apollo-client
将数据提取回 Redux 存储,则必须手动调度操作来执行此操作(一旦data
从graphql
调用返回(。这大多没有记录,因为不建议使用 2 种类型的Store
.
如果你只需要调用一个 GraphQL 端点,而不是改变你的 Redux 实现。我建议改用apollo-fetch或graphql-request。