【发布时间】:2021-02-25 09:43:06
【问题描述】:
我不知道为什么刷新状态后我的 react 应用程序不会更新。 我正在显示一个表格,可以通过单击突出显示其中的行。 在触摸屏上向下滑动时,它应该重新加载。动画正在显示,但表格没有更新,突出显示仍然存在。
我提供了一个小代码示例。如果这篇文章需要更多代码或信息,请随时发表评论。
提前致谢。
const dummyKonten = [
{ id: 1,
icon: 'a',
name: 'Sparkasse',
isSelect: false },
{ id: 3,
icon: 'b',
name: 'Volksbank',
isSelect: false }]
constructor(props) {
super(props);
this.state = {
isLoading: true,
isRefreshing: false,
konten: [...dummyKonten],
updatedKonten: [...dummyKonten],
};
}
onRefresh = () => {
const reset = [...this.state.konten];
this.setState(
{
isRefreshing: true,
}
);
wait(2000).then(() => {
this.setState(
{ isRefreshing: false,
updatedKonten: reset } )}
);
}
selectItem = (item) => {
item.isSelect = !item.isSelect;
const index = this.state.updatedKonten.findIndex(
indexItem => indexItem.id === item.id
);
const newKonten = [...this.state.updatedKonten];
newKonten[index] = item;
this.setState(
{
updatedKonten: newKonten,
}
);
};
render(){
return(
<SafeAreaView style={styles.view}>
<StatusBar barStyle="dark-content" />
<View style={styles.viewBody}>
<FlatList
data={this.state.updatedKonten}
extraData={this.state.updatedKonten}
renderItem={this.renderKonto}
ItemSeparatorComponent={this.flatListItemSeparator}
refreshControl={
<RefreshControl colors={["#5797C5"]} refreshing={this.state.isRefreshing} onRefresh={this.onRefresh} />}
showsHorizontalScrollIndicator={false}
keyExtractor={item => item.id.toString()}
/>
</View>
<HomeButton navigation={this.props.navigation} />
</SafeAreaView>
);
}
【问题讨论】:
标签: reactjs react-native react-native-flatlist