簡體   English   中英

無法獲取Flatlist拉動刷新工作

[英]Can't get Flatlist pull to refresh working

該文檔是非常簡單的,但是以某種方式我無法獲得更新的動力。 數據已正確加載到componentDidMount但是當我嘗試下拉列表時未調用_refresh 我在iPhone和Android設備上嘗試過。 在Android上,我什至無法下拉列表(無橡皮效果)。

這是我的代碼:

export default class HomeScreen extends Component {
  static navigationOptions = { header: null };
  state = { data: [], isLoading: true };

  _fetchData = async () => {
    const data = [];
    try {
      const response = await fetch('https://randomuser.me/api/?results=10');
      const responseJSON = await response.json();
      this.setState({ data: responseJSON.results, isLoading: false });
    } catch (error) {
      alert('some error');
      this.setState({ isLoading: false });
    }
  };

  _refresh = () => {
    alert('this is never be shown');
    this.setState({ isLoading: true });
    this._fetchData();
  };
  componentDidMount() {
    this._fetchData();
  }

  render() {
    if (this.state.isLoading)
      return (
        <View style={styles.container}>
          <ActivityIndicator size="large" color="darkorange" />
        </View>
      );

    return (
      <View style={styles.container}>
        <FlatList
          data={this.state.data}
          keyExtractor={item => item.email}
          renderItem={({ item }) => (
            <FriendListItem
              friend={item}
              onPress={() =>
                this.props.navigation.navigate('FriendsScreen', {
                  friend: item,
                })
              }
            />
          )}
          ItemSeparatorComponent={() => <View style={styles.listSeparator} />}
          ListEmptyComponent={() => <Text>empty</Text>}
          onRefresh={this._refresh}
          refreshing={this.state.isLoading}
        />
      </View>
    );
  }
}

仔細檢查您的FlatList導入。 我很確定您是從react-native-gesture-handler導入FlatList的。 如果是,則將其刪除。

FlatList應該從react-native導入,如下所示。

從'react-native'導入{FlatList};

如果不是上述情況,請與我分享您的StyleSheet。

讓我知道是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM