Могу ли я использовать навигационный ящик для реализации фильтров в Интернете? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую навигационный ящик, например:

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, который вызывается в навигаторе ящиков.

...