Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs AWS AppSync突变重新呈现突变视图_Reactjs_Aws Appsync - Fatal编程技术网

Reactjs AWS AppSync突变重新呈现突变视图

Reactjs AWS AppSync突变重新呈现突变视图,reactjs,aws-appsync,Reactjs,Aws Appsync,我有一个测试应用程序,我订阅了一个TODO列表。但我的“添加新的待办事项”也乐观地更新了用户界面。 问题是它现在正在刷新整个react视图,我不知道为什么 这是罪魁祸首,当我运行此变异时发生: export default graphql(addItem, { options: { fetchPolicy: 'cache-and-network' }, props: props => ({ onAdd: item => props.mutate

我有一个测试应用程序,我订阅了一个TODO列表。但我的“添加新的待办事项”也乐观地更新了用户界面。 问题是它现在正在刷新整个react视图,我不知道为什么

这是罪魁祸首,当我运行此变异时发生:

export default graphql(addItem, {
  options: {
    fetchPolicy: 'cache-and-network'
  },
  props: props => ({
    onAdd: item =>
      props.mutate({
        variables: item,
        optimisticResponse: {
          __typename: 'Mutation',
          addItem: { ...item, __typename: 'Item' }
        },
        update: (proxy, { data: { addItem } }) => {
          let data = proxy.readQuery({ query: listItems });
          data.listItems.items.push(addItem);
          proxy.writeQuery({ query: listItems, data });
        }
      })
  })
})(AddItem);

事实证明,在没有所有查询字段的情况下对项目进行本地变异(在我的例子中,“创建”是由服务器添加的)会导致整个查询变异失败,但不会发生任何变化。路上有个补丁:


希望这能帮助其他人起步

进一步调试表明,出于某种原因,在更新之前将my props.items数组设置为[]。每次它更新。不知道为什么。