bugfix> react-native > 投稿

コンポーネントのスクロールビューでリフレッシャーにデータ小道具を使用する必要があります。だから私は data.refetch を呼び出す必要があります私の onRefresh でリフレッシャー用。しかし、データプロップは未定義エラーです。

コード:

class abc extends Component {
    render() {
      return (
        <View>
          <ScrollView
            onRefresh={this.props.data.refetch} // undefined error
            refreshing={this.props.data.loading} // undefined erro    
          >
          .....
           </ScrollView>
        </View>
      );
    }
}
export default compose(
 ....,
 graphql(
   MyQuery,{
      .....
   }
 )
)(abc);

データプロパティが未定義なのはなぜですか?

回答 1 件
  • 私自身がそれを理解しました。

    class abc extends Component {
        static propTypes = {
          ....
          refetchData: PropTypes.func.isRequired,
          ....
        };
        render() {
          return (
            <ScrollView>
              <RefreshControl
                onRefresh={this.props.refetchData}
                refreshing={this.props.refreshing}
              />
            </ScrollView>
          );
        }
    }
    export default compose(
      graphql(MyQuery, {
        props: props => ({
          refetchData: props.data.refetch,
          refreshing: props.data.networkStatus === 4,
        })
      }),
    );
    
    

    再取得プロップをカスタムスクリーンプロップにマッピングし、RefreshControlから呼び出しました。

あなたの答え