0

我需要在组件的滚动视图中使用数据道具进行复习。所以我需要打电话给data.refetchonRefresh的Refresher。但我得到 data prop is undefined 错误。

代码:

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);

为什么我的数据道具未定义?

4

1 回答 1

2

我自己想通了。

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,
    })
  }),
);

我将 refetch 道具映射到自定义屏幕道具并从 RefreshControl 调用它。

于 2018-05-25T17:42:59.357 回答