标签: react-native-navigation

如何在用户注销时重置TabNavigator(从其他屏幕)

这是我的项目文件层次结构

RootTabNavigator
    | AuthStackNavigator // I want to go back to this navigator
          | AuthoScreen
    | Welcome Screen
    | MainTabNavigator // I want to reset MainTabNavigator 
          | FeedStacknavigator
                   | Screen A
          | OtherStackNavigatorOne
                   | Screen E
          | OtherStackNavigatorTwo
                   | Screen D
          | MenuStackNavigator 
                   | Menuo <-I'm here and want to reset to 'MainTabNavigator' 
                             and go BACK to 'AuthScreen'
           | Screen B
                   | Screen C
Run Code Online (Sandbox Code Playgroud)

问题

用户在MenuStackNavigator和MainTabNavigator下的Menuo屏幕上.

如果用户没有令牌(当用户注销时),则用户返回到Auth Screen.

但同时我想重置MainTabNavigator.您可以卸载,执行NavigationActions.init()或其他任何操作.我更喜欢NavigationActions.init()

我只是想将MainTabNavigator设置为第一次.

如果没有令牌,我会回到Auth Screen(这是有效的)

This code if the part …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-redux react-native-navigation react-navigation

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

使用上下文api进行react-native-navigation(反应16.3)

有谁能够使用react-native-navigation在react 16.3中引入新的Context API?

我在尝试将其设置为react-native-navigation时遇到麻烦,没有主要组件可以管理状态然后呈现Context.Provider组件,只有Navigation.startSingleScreenApp或类似功能。

事先感谢您提供的任何帮助

环境React Native导航版本:1.1.403 React Native版本:0.55.4平台:iOS设备信息:模拟器

react-native react-native-navigation

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

Wix react-native-navigation更改选项卡和推屏

如何同时切换选项卡和推屏?当按下按钮时,我想切换到另一个选项卡并按下一个新屏幕。可能吗?

class Example extends Component {
      buttonHandler = () => {
        this.props.navigator.switchToTab({
          tabIndex: 0
        });
        this.props.navigator.push({  // actually this navigator's tabIndex is 0 
          screen: "dc.Examplecreen",
          title: "Exampe", 
          passProps: {
            lesson : this.props
          }    
       });
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript react-native react-native-navigation

5
推荐指数
2
解决办法
2313
查看次数

带有redux的React-Native-Navigation V2无法通过道具

我有一个简单的两屏应用程序,其中包含redux和React-Native-Navigation V2。我尝试将项目从列表传递到另一个视图作为道具。不幸的是,我得到一个错误:

TypeError:无法读取未定义的属性“ id”

该项目已通过但未在第二视图中作为道具被接收。在没有Redux的情况下,一切正常。我是否正确注册了视图?

查看注册:

export default (store) =>  {
  Navigation.registerComponent('example.app.FirstScreen', reduxStoreWrapper(FirstScreen, store));
  Navigation.registerComponent('example.app.SecondScreen', reduxStoreWrapper(SecondScreen, store));
}

function reduxStoreWrapper (MyComponent, store) {
  return () => {
    return class StoreWrapper extends React.Component {
      render () {
        return (
          <Provider store={store}>
            <MyComponent />
          </Provider>
        );
      }
    };
  };
}
Run Code Online (Sandbox Code Playgroud)

第一视图:

class FirstScreen extends Component {
  componentDidMount() {
    this.props.listItems();
  }

  onItemPress = (item: Item) => {
    Navigation.push(item._id, {
      component: {
        name: 'example.app.SecondScreen',
        passProps: {
          item: item
        }
      }
    });
  };

  render() { …
Run Code Online (Sandbox Code Playgroud)

react-native redux react-native-navigation wix-react-native-navigation react-native-navigation-v2

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

在Android上调用本机Linking.getInitialUrl总是调用

我有一个带有以下代码的React-Native应用程序(这里是App.js,应用程序入口点),用于管理Android上的深层链接。

Linking.getInitialURL().then((deepLinkUrl) => {
  if (deepLinkUrl) {
    manageDeepLink(deepLinkUrl);
  } else {
    Navigation.startSingleScreenApp('rootScreen');
  }
});
Run Code Online (Sandbox Code Playgroud)

这里的问题是,每次我从深度链接或正常情况下启动我的应用程序时,都会调用getInitialURL,并且每次它包含deepLinkUrl参数为空时都会调用它。我已经在AndroidManifest中注册了我的意图,如下所示:

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:launchMode="singleTask"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize">
        <!-- deeplink -->
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="myapp" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

更新 我正在使用本机导航来注册屏幕,如果这可能有用的话。

android deep-linking react-native react-native-android react-native-navigation

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

React Native Navigation - [FAB]浮动操作按钮未按预期显示

我正在使用React-native-navigation(wix),并且存在与React本机FAB(浮动操作按钮)相关的问题.

要求 - 我需要在componentDidMount生命周期方法中设置FAB,如下所示

componentDidMount() {
  this.props.navigator.setButtons({
    fab: {
     collapsedId: "someFormName",
     ...getAddButtonStyle()
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我管理this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));全球,它按预期工作.我在这里遇到的问题是当我将其设置在内部时,FAB没有在我的UI中显示,componentDidMount()但如果我设置为 static button完美的工作.此外,它完美地完成了内部render()功能.

我很困惑,为什么我不能在componentDidMount()[初始页面加载] 内设置按钮?

android react-native react-native-android react-native-navigation wix-react-native-navigation

5
推荐指数
0
解决办法
449
查看次数

React Native深度链接应用程序未打开

我遵循了下面提到的两篇文章中的所有步骤

https://hackernoon.com/react-native-deep-linking-for-ios-and-android-d33abfba7ef3

https://medium.com/react-native-training/deep-linking-your-react-native-app-d87c39a1ad5e

将应用程序安装到我的手机上后,我尝试通过提供 peopleapp://people/1 格式的 URL 从浏览器打开该应用程序。浏览器不会打开应用程序,而是打开 Google 搜索来搜索上述内容。

我使用此应用程序通过使用我的应用程序链接(https://play.google.com/store/apps/details?id=com.manoj.dlt&hl=en_US)打开我的应用程序,它正在工作。

但是如何使用我的应用程序链接从浏览器或其他应用程序打开应用程序?

任何人都有想法,如何解决这个问题?

这是我的 AndroidManifest 总代码`

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
    android:name=".MainApplication"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true">
    <activity
        android:name=".MainActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:screenOrientation="portrait"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter android:label="filter_react_native">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" …
Run Code Online (Sandbox Code Playgroud)

android deep-linking react-native react-native-navigation

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

如何在反应本机中将徽章添加到标签栏?

我正在使用 tabnavigator (createbottomBottomTabNavigator) 并需要使用 redux 进行包计数方面的帮助。

react-native redux react-redux react-native-navigation

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

使用 React Native 导航时超出最大调用堆栈大小


我刚刚开始使用 React Native,所以我还在学习中。
我正在尝试在我的应用程序中实现导航,除了一页之外几乎所有内容都工作正常。
在应用程序中,当用户注册时,他可以作为个人或组织注册,这将导致他根据他的选择进入不同的注册表格。
但是,当我选择任一选项时,应用程序都会崩溃,并且出现以下错误:

未捕获的错误:RangeError:超出最大调用堆栈大小,堆栈。

我在网上寻找答案,大多数时候是因为导航中有无限循环。但是,我在代码中没有看到任何可能存在循环的地方,我按照对其他页面所做的那样进行了操作,这再次运行良好。

这是App.js的代码

import React from 'react';
import { StyleSheet, Text, View, TouchableOpacity } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { LinearGradient } from 'expo-linear-gradient';

import WelcomeToKarma from "./components/WelcomeToKarma.js";
import Login from "./components/Login.js";
import ForgotPass from "./components/ForgotPass.js";
import UserRegistration from "./components/UserRegistration.js";
import OpenEmail from "./components/OpenEmail.js";


function InitialScreen({ navigation }) {
  return (

    <View style={styles.container}>
      <LinearGradient
        style={{ alignItems: 'center', justifyContent: 'center', flex: 1, width: '100%' …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native react-native-navigation

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

TypeError: (0, _native.useTheme) 不是函数。(在 '(0, _native.useTheme)()' 中, '(0, _native.useTheme)' 未定义)

我创建了一个 drawerNavigator,现在我正在尝试向标题添加一个图标。问题是当我添加 HeaderButton 时出现此错误:

组件异常

在导航选项中,我尝试同时使用 HeaderButton 和 CustomHeaderButton 但它不起作用,我似乎无法弄清楚问题所在。

这是我的代码:

HeaderButton.js

import React from "react";
import { HeaderButton } from "react-navigation-header-buttons";
import { Ionicons } from "@expo/vector-icons";

const CustomHeaderButton = (props) => {
  return (
    <HeaderButton
      {...props}
      IconComponent={Ionicons}
      iconSize={23}
      color="black"
    />
  );
};

export default CustomHeaderButton;

Run Code Online (Sandbox Code Playgroud)

欢迎屏幕.js

import React from "react";
import { View, Text, StyleSheet, ImageBackground, Image } from "react-native";
import MainButton from "../components/MainButton";
import Colors from "../constants/Colors";
import { HeaderButtons, Item } from "react-navigation-header-buttons";
import HeaderButton from …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-navigation expo

5
推荐指数
3
解决办法
2209
查看次数