ReactNative Как передать параметр в пользовательской навигации по ящику - PullRequest
0 голосов
/ 27 мая 2019
const ListNavigator = createStackNavigator({
  List: {
    screen: PostListContainer,
    path: 'list',
  },
});


const leftMenuWidth = Dimensions.get('screen').width / 2;

const DrawerNavigator = createDrawerNavigator({
  Home: AppNavigator,
  PostType1: ListNavigator,
  PostType2: ListNavigator,
}, {
  drawerWidth: leftMenuWidth,
  contentComponent: SlideMenuContainer,
  drawerOpenRoute: 'DrawerOpen',
  drawerCloseRoute: 'DrawerClose',
  drawerToggleRoute: 'DrawerToggle',
});

SlideMenuContainer

class SideMenuContainer extends Component {
  navigateToScreen = route => () => {
    const { navigation } = this.props;
    const navigateAction = NavigationActions.navigate({
      routeName: route,
    });
    navigation.dispatch(navigateAction);
  }

  render() {
    const { props } = this;
    return (
      <Container>
        <SafeAreaView>
          <Header>
            <Body style={{ flex: 1 }}>
              <Icon named="a" />
            </Body>
            <Content style={{ flex: 1, height: 800 }}>
              <DrawerItems {...props} />
            </Content>
          </Header>
        </SafeAreaView>
      </Container>
    );
  }
}

При касании PostType1 в меню навигации Я хочу передать {Type: 1} на ListNavigator.

<ListNavigator {... props} Type = 1 />

Я видел такой код, но я не знаю, где его использовать. Как Могу ли я отправить param, когда нажимаю на меню навигации по ящикам?

1 Ответ

0 голосов
/ 27 мая 2019

Вы можете добавить реквизит при переходе на другой экран в ящике навигации

 this.props.navigation.navigate("route", {
     type: 1
 }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...