如何重新呈现使用相同共享子组件的标签(react-native-tab-view
)?
我有3个js
文件; Parent
,TabView
和Item
。
我在父级中有2个标签; All
和Downloaded
使用相同的子组件和不同的道具。我可以看到All
中的所有项目,包括Downloaded
个项目。我想在All
标签上更新项目状态时,在Downloaded
标签视图中更新项目状态。我尝试传递道具并使用回调,但即使使用forceUpdate
方法,也无法通过它来更新其他选项卡上的视图。
父母:
renderScene = ({route}) => {
switch (route.key) {
case 'all':
return <DocumentTabView /** ..props all items **/ />
case 'downloaded':
return <DocumentTabView /** ..props downloaded only **/ />
default:
return <DocumentTabView /** ..props all items **/ />
}
};
render() {
return (
<TabView
lazy
navigationState={this.state}
renderScene={this.renderScene}
renderHeader={this.renderHeader}
onIndexChange={this.handleIndexChange}
/>
);
}
TabView:
render() {
return (
<SafeAreaView
forceInset={{top: 'always'}}
style={documentStyles.container}>
<ScrollView
contentContainerStyle={documentStyles.scrollview}
refreshControl={
<RefreshControl
refreshing={this.props.isRefreshing}
onRefresh={this.props.refreshCallback}
/>
}>
{this.state.dataSource.map((item, index) => {
return (
<Item /** ..props **/ />
);
})}
</ScrollView>
</SafeAreaView>
);
}