标签: react-navigation-stack

反应本机导航跨屏幕通知“小吃店”

尝试使用 react-navigation 在 React Native 的许多屏幕上实现“无互联网”通知。我试图避免将组件添加到所有屏幕视图渲染功能,因为它感觉像样板。

有没有一种简单的方法可以使用 react native 导航在一个地方添加一个组件并让它在所有屏幕上持久化?

react-native react-navigation react-navigation-stack

1
推荐指数
1
解决办法
1022
查看次数

如何在抽屉导航器内的堆栈导航器中通过 backButton 返回

我有多个屏幕,每个屏幕都是一个 stackNavigator。任何创建的 stackNavigator 都在抽屉内。在每个屏幕中,当按下 stackNavigator 标题的 BackButton 时,屏幕总是导航到 initialRoute 而不是回到上一个屏幕。

我测试navigation.goBack()navigation.goBack(null)navigation.goBack()navigation.goBack(this.props.navigation.state.key)}

但这些都没有奏效。这是我的代码:

    const MenuScreenNavigator = createStackNavigator({
    Menu: {
        screen: MenuScreen,
        navigationOptions: ({ navigation }) => ({
            headerLeft: (
                <HeaderBackButton
                    tintColor="white"
                    onPress={() => navigation.goBack()}
                />
            )
    }

Run Code Online (Sandbox Code Playgroud)

我有多个屏幕导航器,例如菜单导航器:“加载”、“主页”、...屏幕。在继续我有抽屉导航器:

const drawerConfig = {
    drawerPosition: 'right',
    contentComponent: CustomDrawerContent,
    initialRouteName: "Load"
   }
   const routeConfig = {
    Menu: {
        screen: MenuScreenNavigator,
        navigationOptions: { title: strings.screenName.menu }
    },
    Load: { screen: AuthLoadingScreenNavigator },

    Login: {
        screen: LoginScreenNavigator,
        navigationOptions: { …
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation-drawer react-navigation-stack

1
推荐指数
1
解决办法
6649
查看次数

在 StackAction.reset 期间,如何防止 react-navigation 显示过渡动画?

使用 react-navigation-stack 1.10.3,重置 StackActions 将新堆栈加载到位,无需转换。与 react-navigation-stack 2.0.15 相同的代码片段添加了一个平台默认过渡,对于 iOS,它是 SlideFromRightIOS。

如何在 1.10.X 和 2.0.X 上复制之前的行为,其中在堆栈重置时没有转换?

navigation.dispatch(
    StackActions.reset({
        index: 0,
        actions: [
            NavigationActions.navigate({
                routeName: user ? 'Home' : 'Landing',
            }),
        ],
    }),
);
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation expo react-navigation-stack

1
推荐指数
1
解决办法
2793
查看次数

无法在反应导航堆栈中居中标题 - React-Native?

我无法在 react-navigation V4+ 中将标题居中,在使用 v3 之前它的工作正常,当使用 RN-stack 时,由于某种我不知道的原因,我无法将标题居中。

它只是出现在右边,

我尝试这些中headerTitleStyleheaderStyle

justifyContent, alignItems and alignSelf but not works :/
Run Code Online (Sandbox Code Playgroud)

如果你有任何想法告诉我?

"react-navigation": "^4.0.10",
"react-navigation-drawer": "^2.3.3",
"react-navigation-stack": "^2.0.16",
"react-native-screens": "^2.0.0-alpha.29",
Run Code Online (Sandbox Code Playgroud)

这是代码

static navigationOptions = ({navigation}) => {
    const showModal = navigation.getParam('showModal', () => {});
    return {
      title: navigation.getParam('title'),
      headerTitleStyle: {
        fontFamily: 'Cairo-Regular',
        fontSize: Platform.OS == 'ios' ? 16 : 18,
        color: '#fff',
        flex: 1,
        textAlign: 'center',
      },
      headerStyle: {
        backgroundColor: navigation.getParam('color'),
      },
      headerRight: (
        <Grid>
          <Row>
            <Body>
              <Button
                transparent
                icon …
Run Code Online (Sandbox Code Playgroud)

javascript react-native react-navigation react-navigation-stack

1
推荐指数
1
解决办法
2574
查看次数

在嵌套导航器中导航时未定义 route.params?

我正在使用 React Native 和 React Navigation。我试图只让我的屏幕变成一个mode="Modal,但路线PARAMS我通过导航越来越“未定义”有错误时TypeError: undefined is not an object (evaluating 'route.params.title')。为什么会这样,我该如何解决?

我的尝试

const ModalScreen = () => (
  <Modals.Navigator mode="modal">
    <Modals.Screen
      name="Modal"
      component={Modal}
      options={({ route }) => ({
        title: route.params.title,
        headerTransparent: true,
        gestureResponseDistance: {
          vertical: 500,
        },
      })}
    />
  </Modals.Navigator>
);
const MainScreen = () => (
  <Items.Navigator>
    <Items.Screen
      name="Main"
      component={Main}
      options={{ headerShown: false }}
    />
    <Items.Screen name="Modal" component={ModalScreen} />
  </Items.Navigator>
);

// Navigating to Modal in another file.
<TouchableOpacity
  onPress={() =>
    navigation.navigate("Modal", { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native react-navigation react-navigation-stack

1
推荐指数
1
解决办法
926
查看次数

如何在React导航(3.x)中为全屏模式提供透明背景?

如何在React导航(3.x)中为全屏模式提供透明背景。此处给出的解决方案不适用于新版本的react-navigation。我想要新的全屏模式中的透明颜色,该颜色显示在另一个屏幕上。

  const MainNavigator = createStackNavigator(
  {
    BrowserHome: { screen: BrowserHome },
    ImageDetailModal: {
      screen: ImageDetail,
      navigationOptions: {
        header: null
      }
    }
  },
  {
    mode: "modal",
    cardStyle: {
      backgroundColor: "transparent",
      opacity: 1
    }
  }
);

const AppContainer = createAppContainer(MainNavigator);

export default AppContainer;
Run Code Online (Sandbox Code Playgroud)

在“ BrowserHome”组件上显示的“图像细节”组件是:

export default class ImageDetail extends React.Component {
  render() {
    const modalColor = this.props.navigation.getParam("modalColor");
    return (
      <View
        style={{ flex: 1, flexDirection: "column", justifyContent: "flex-end" }}
      >
        <View
          style={{
            height: "50%",
            width: "100%",
            backgroundColor: "red",
            justifyContent: "center" …
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation react-navigation-stack

0
推荐指数
3
解决办法
2651
查看次数

headerShown、headerTitle 和其他选项不适用于屏幕

我是 React Native 的新手,我正在尝试创建一些仅用于学习和测试的东西......

现在,我正在尝试创建一个带有登录屏幕和“登录区域”中的其他一些屏幕的应用程序。所以,我想在“记录区域”屏幕上使用标题栏,而不是在登录屏幕上。

为此,我正在尝试使用 React-Navigation,并在Stack.Screen. 但是不工作...

这是我当前的代码:

[...]
const Stack = createStackNavigator();
[...]
<NavigationContainer>
  <Stack.Navigator headerMode="screen">
    <Stack.Screen headerTitle="Test" headerShown={false} screenOptions={{headerTitle: 'Test', headerShown: false}} name="Login" component={Login} />
  </Stack.Navigator>
</NavigationContainer>
[...]
Run Code Online (Sandbox Code Playgroud)

我正在测试headerTitle和是否headerShown作为财产或作为screenOptions' 选项工作......但没有任何效果。

现在,我的屏幕在标题中有一个“登录”标题(忽略headerTitle属性和选项)并显示标题(忽略headerShown属性和选项)。

有人能告诉我我做错了什么吗?

react-native react-native-android react-navigation react-navigation-stack

0
推荐指数
1
解决办法
3407
查看次数