我正在graphql
通过react apollo提供的HOC 获取数据列表.例如:
const fetchList = graphql(
dataListQuery, {
options: ({ listId }) => ({
variables: {
listId,
},
}),
props: ({ data: { loading, dataList } }) => {
return {
loading,
list: dataList,
};
}
}
);
Run Code Online (Sandbox Code Playgroud)
我在受控的单选按钮组中显示列表,我需要默认选择其中一个项目.在id
所选择的项目被保留在终极版商店.
那么,问题是如何selectedItem
在查询成功返回后更新Redux存储(即设置)?
我想到了一些选择:
我应该APOLLO_QUERY_RESULT
在Redux减速机上听动作吗?但这有点尴尬,因为那时我需要听两个APOLLO_QUERY_RESULT
,APOLLO_QUERY_RESULT_CLIENT
如果查询已经运行过.同时,也是operationName
道具只在本APOLLO_QUERY_RESULT
行动而不是APOLLO_QUERY_RESULT_CLIENT
采取行动.因此,我需要剖析每一个APOLLO_QUERY_RESULT_CLIENT
动作,以了解它的来源.是否有一种简单直接的方法来识别查询结果操作?
我应该发送一个单独的动作SELECT_LIST_ITEM
,componentWillReceiveProps
例如(使用重构):
const enhance = compose(
connect(
function mapStateToProps(state) { …
Run Code Online (Sandbox Code Playgroud)