React native React Native-平面列表不调用renderItem';基于刷新的生命周期方法

React native React Native-平面列表不调用renderItem';基于刷新的生命周期方法,react-native,react-native-android,react-native-flatlist,React Native,React Native Android,React Native Flatlist,每次刷新列表时,我想在renderItem的componentDidMount方法中发出一个获取请求,但是FlatList只调用生命周期方法一次 名单 <FlatList data={this.state.dataSource} renderItem={({item}) => <ListItem imageHref={item.imageHref} />} keyExtractor={(item, index) => inde

每次刷新列表时,我想在
renderItem
componentDidMount
方法中发出一个获取请求,但是
FlatList
只调用生命周期方法一次

名单

<FlatList data={this.state.dataSource}
          renderItem={({item}) => <ListItem imageHref={item.imageHref} />}
          keyExtractor={(item, index) => index.toString()}
          refreshing={this.state.refreshing}
          onRefresh={/* Fetching data from JSON and updating dataSource[] */} />
我尝试在
render
方法中调用
fetch
,但也不起作用


我基本上希望每次刷新列表时,
imageSource
都会更新。请帮助。

因为
列表项未更改。您必须在
onRefresh
中获取新图标并将其传递到
ListItem
中,然后当ListView刷新时,所有数据都将更改。。。如果您想在
列表项中执行此操作,您需要与该特定项进行一些交互,例如,一些按钮,如果用户按下此按钮,则获取并更改图标,我不知道列表何时刷新,但您可以尝试此
this.forceUpdate()
您可以在此处了解更多信息

不,不是这样。我多次更改JSON数据并进行刷新,但它从未多次调用componentDidMount。
render() {
    return <Image source={this.state.imageSource} />
}

componentDidMount() {
    fetch(this.props.imageHref)
        .then(response => {
            if(response.status !== 200)
                this.setState({imageSource: require('../assets/default-image.png')
            else
                this.setState({imageSource: {uri: this.props.imageHref}});
            }
        });
}