【发布时间】:2019-10-21 10:12:23
【问题描述】:
我想让 Modal 出现在所有其他组件的前面。 根将是 App.js,它使用 react-navigation 在内部创建一个路由器,其中包含一个名为 Book.js 的选项卡。 在 Book.js 中,它会显示 BookItem.js 的列表 我想要的是,当我单击每个 BookItem 时,模态将显示并覆盖包括路由器底部标签栏在内的所有内容,但是使用我提供的代码,其中 modalVisible = false,它将显示以下内容:
App.js
export default function App() {
return (
<View style={styles.container}>
<Router />
</View>
);
}
Router.js
export default createAppContainer(createBottomTabNavigator);
书籍.js
const createBookList = (data) => {
setBooklist(data.datas.map(item => (
<BookItem key={item.bid} data={item} />
)))
};
return (
<View style={styles.search}>
<ScrollView>
{booklist}
</ScrollView>
</View>
);
Bookitem.js
return (
<View>
<Modal isVisible={modalVisible}>
<View>
<Text>Modal</Text>
<Button title="Hide modal" onPress={() => { setmModalVisible(false) }} />
</View>
</Modal>
<TouchableOpacity onPress={() => { setmModalVisible(true) }}>
<View style={styles.container}>
{ bookdetail }
</View>
</TouchableOpacity>
</View>
【问题讨论】:
-
只使用一个Modal,并在ScrollView下面渲染,点击列表项时将行数据传递给Modal。
-
那么你的意思是我只是将模态框放在上层并将数据从子节点传递给父节点?
标签: react-native popup simplemodal