React Native - React Apollo - реквизиты данных не определены - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно использовать данные для обновления в scrollview в моем компоненте.Так что мне нужно позвонить 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 Ответ

0 голосов
/ 25 мая 2018

Я сам разобрался.

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.

...