【问题标题】:AWS AppSync mutation rerendering the view on mutationAWS AppSync 突变重新呈现突变视图
【发布时间】:2018-12-02 20:27:16
【问题描述】:

我有一个要订阅待办事项列表的测试应用程序。但是我添加新的 todo 突变也乐观地更新了 UI。 问题是它现在刷新了整个反应视图,我不知道为什么。

这是罪魁祸首,它发生在我运行这个突变时:

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);

【问题讨论】:

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

标签: reactjs aws-appsync


【解决方案1】:

事实证明,在没有所有查询字段的情况下在本地更改项目(在我的情况下,“创建”是由服务器添加的)会导致整个查询更改失败但静默。正在修复:https://github.com/apollographql/apollo-client/issues/3267

希望这可以帮助其他人开始!

【讨论】:

    猜你喜欢
    • 2019-04-13
    • 2018-12-24
    • 2019-12-27
    • 2019-03-05
    • 2018-11-05
    • 2020-11-23
    • 2020-01-05
    • 2018-12-21
    • 2021-04-24
    相关资源
    最近更新 更多