我正在使用导航抽屉,例如:
export default DrawerNavigator({
Dashboard: {screen: Dashboard},
CreateLogin: {screen: CreateLogin},
Test: {screen: Test}
}, {
contentComponent: SideMenu,
drawerWidth: 300,
drawerPosition: 'right'
});
现在contentComponent:SideMenu包含一系列复选框,例如
renderItem={({ item, index }) => <CheckBox
title={item.name}
onPress={() => this.handleChange(item.id)}
checked={checked[item.id]} />
在上面的代码中,每个复选框都有一个特定的索引,现在当用户单击任何要设置后屏幕状态的复选框时,请记住我仍在单击复选框的导航抽屉中(或者您可以说是过滤器)。
现在,我想在我要打开抽屉式导航器的地方更改列表页面上的状态,例如ProductListing.js
<Button
title='Filter'
onPress={() => navigation.dispatch(DrawerActions.openDrawer())}
/>
注意:我知道如何将状态从父母传递给孩子,反之亦然。这里的问题是我打开的抽屉菜单中有过滤器,这些过滤器不是ProductListing.js文件的父级或子级。如何从SideMenu.js更新ProductListing.js的状态,该状态在抽屉导航器中被调用。