【问题标题】:Relay Modern- Object passed into QueryRenderer as variable breaks when edited with RefetchContainer使用 RefetchContainer 编辑时,Relay Modern- 对象作为变量中断传递到 QueryRenderer
【发布时间】:2017-11-09 05:25:53
【问题描述】:

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

即-

<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 不处理对象,还是我做错了什么?

【问题讨论】:

  • the container breaks 是什么意思?显示的错误信息是什么?

标签: relayjs relay


【解决方案1】:

当查询级别变量发生变化时,最终需要从父组件重新呈现 QR。

【讨论】:

    【解决方案2】:

    你的变量应该用双括号:

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

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

    【讨论】:

      猜你喜欢
      • 2017-12-27
      • 2018-01-03
      • 2018-05-13
      • 2018-03-27
      • 2017-10-14
      • 2018-06-27
      • 2018-02-21
      • 2017-12-30
      • 2019-02-17
      相关资源
      最近更新 更多