中继现代对象在使用 RefetchContainer 编辑时作为变量中断传递到 QueryRenderer

Relay Modern- Object passed into QueryRenderer as variable breaks when edited with RefetchContainer

将对象传递到 QueryRenderer 变量。在成功渲染的重新获取容器中,当对象发生任何变化时,容器就会中断。还将整数作为变量传递,该变量不会因重新获取而发生变化。

即-

<QueryRenderer
  query={query}
  variables={
    count: 5, 
    testObject= { 
      something1: { 
        something2: ['something', 'something'] 
      }
    }
  ...
 />

 Refetch container calls via 
 _onRefetch() => {
     const newSearch = {
       something1: {
         something2: ['somethingElse'],
       }
    };
    const refetchVariables = fragmentVariables => ({
      testObject: newSearch,
      count: this.state.currentCount + 10,
    });
   nullthrows(this.props.relay).refetch(
    refetchVariables,
    null);
 }

relay modern refetch 不会处理对象,还是我做错了什么?

你的变量应该在双括号中:

<QueryRenderer
  query={query}
  variables={{
    count: 5, 
    testObject: { 
      something1: { 
        something2: ['something', 'something'] 
      }
    }
    ...
  }}
  ...
/>

https://facebook.github.io/relay/docs/query-renderer.html

最终需要在查询级别变量更改时从父组件重新呈现 QR。