Я использую навигационный ящик, например:
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. Как я могу обновить состояние ProductListing.js из SideMenu.js, который вызывается в навигаторе ящиков.