title: Force refetch in Relay Modern RefetchContainer with no (new) variables
body: <p>I'm trying to find out how/if it is possible to trigger a refresh in a Relay Modern <code>RefreshContainer</code> without passing (new) variables? </p>
  
  <p>I’m looking for the best way to implement the good ol’ pull-to-refresh on a React Native list, that should simply refetch the original query - no variables needed? </p>
  
  <p>According to docs (<a href="https://facebook.github.io/relay/docs/api-cheatsheet.html" rel="nofollow noreferrer">https://facebook.github.io/relay/docs/api-cheatsheet.html</a>) this should be possible using </p>
  
  <p><code>this.props.relay.refetch({}, callback, {force: true})</code> </p>
  
  <p>but I get an error saying "undefined is not an object ('evaluating taggedNode.modern')"</p>
  
  <p><a href="https://i.stack.imgur.com/ROAoW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ROAoW.png" alt="enter image description here"></a></p>
  
  <p>The query works just fine if I use a plain old <code>FragmentContainer</code> instead, but I'd just like a simple pull-to-refresh functionality :-) </p>
  
  <p><strong>EDIT</strong>
  Adding more code for clarity. Also updated call to reflect change to API that includes render variables, passing null</p>
  
  <pre><code>class HistoryList extends React.PureComponent&lt;void, Props, State&gt; {
    state = { refreshing: false };
  
    _renderRow = ({ item }) =&gt; {
      return &lt;HistoryListItem item={item.node} /&gt;;
    };
  
    _renderHeader = ({ section }) =&gt; {
      return (
        &lt;Text style={[cs.breadText, _styles.sectionHeader]}&gt;
          {section.title}
        &lt;/Text&gt;
      );
    };
  
    _onRefresh = () =&gt; {
      this.setState({ refreshing: true });
      this.props.relay.refetch({}, null, this._onRefreshDone(), { force: true });
    };
  
    _onRefreshDone = () =&gt; {
      this.setState({ refreshing: false });
    };
  
    _sortDataIntoSections = (edges: Array&lt;Node&gt;) =&gt; {
      return _.chain(edges)
        .groupBy(element =&gt; {
          return moment(element.node.huntDate).format('MMMM YYYY');
        })
        .map((data, key) =&gt; {
          return { title: key, data: data };
        })
        .value();
    };
  
    render() {
      return (
        &lt;View style={_styles.container}&gt;
          &lt;SectionList
            renderSectionHeader={this._renderHeader}
            sections={this._sortDataIntoSections(
              this.props.entries.allJournalEntries.edges
            )}
            renderItem={this._renderRow}
            keyExtractor={(item, index) =&gt; item.node.__id}
            onRefresh={this._onRefresh}
            refreshing={this.state.refreshing}
          /&gt;
        &lt;/View&gt;
      );
    }
  }
  
  export default createRefetchContainer(
    HistoryList,
    graphql`
      fragment HistoryList_entries on Viewer {
        allJournalEntries(orderBy: huntDate_DESC) {
          count
          edges {
            node {
              huntDate
              ...HistoryListItem_item
            }
          }
        }
      }
    `
  );
  </code></pre>