【发布时间】:2020-07-30 03:50:49
【问题描述】:
我正在使用 React native 来显示来自 fetch API 的数据。但是当数据更新时,它仍然显示旧数据。我很困惑如何在我的代码中进行下拉刷新。
class YourActivitiesScreen extends Component{
constructor(props) {
super(props);
this.state = {
activitiesList: [],
}
};
componentDidMount(){
AsyncStorage.getItem('id_token').then(this.getData)
}
getData=(token)=>{
console.log(token)
fetch('http://192.168.0.1:8887/api/auth/activities/your',{
method: 'POST',
headers:{
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' +token,
},
})
.then((response) => response.json())
.then((res) => {
if(res.yourActivity)
{
let yourActivity = res.yourActivity
this.setState({activitiesList: yourActivity})
}
})
.catch((e) => console.log('Error: ', e))
}
renderItem = (item) => {
return (
<TouchableOpacity
onPress={() =>
this.props.navigation.navigate('Details',{activity: item})
}
>
<View style={styles.item}>
<Text style={styles.itemtext}>{item.name} </Text>
</View>
</TouchableOpacity>
);
}
render(){
const listActivities = this.state.activitiesList
return (
<View stlye={styles.container}>
<SafeAreaView>
<FlatList
data = {listActivities}
renderItem={({ item }) => this.renderItem(item)}
keyExtractor={item => item.id}
style={styles.list}
/>
</SafeAreaView>
</View>
)
}
}
当我进行下拉动作时,我需要做些什么让 componentDidMount 再次运行吗?如果是的话,有人可以向我解释怎么做吗?
【问题讨论】:
-
您可以使用 refreshcontrol 进行下拉刷新,请参阅reactnative.dev/docs/refreshcontrol
标签: javascript react-native page-refresh