我让自动化对detox进行本地测试,它有下一个屏幕顺序A -> B -> C,我想回到屏幕上B <- C.
有解决方案吗?
automated-tests react-native react-native-navigation react-navigation detox
为什么this.props.componentId需要?
它的目的是什么?
为什么我们不能在不需要那个 id 的情况下使用这个库?
react-navigation不需要那样的东西,react-native-navigationv1 没有使用那样的东西。那么为什么 v2 需要并使用它呢?我问的原因首先是为了理解它,其次是看看我是否可以跳过这个,因为现在我不能使用传奇中的 RNN v2。
我正在尝试在我的 React Native 应用程序上实现 Redux-persist。完全按照设置文档,我从这个更改了我的 store.js:
import { applyMiddleware, createStore } from 'redux';
import * as thunkMiddleware from 'redux-thunk';
import reducers from '../reducers';
let middlewares = [thunkMiddleware.default];
const store = createStore(reducers, applyMiddleware(...middlewares));
export default store;
Run Code Online (Sandbox Code Playgroud)
对此:
import { applyMiddleware, createStore } from 'redux';
import * as thunkMiddleware from 'redux-thunk';
import { persistStore, persistReducer } from 'redux-persist';
import AsyncStorage from '@react-native-community/async-storage';
import reducers from '../reducers';
const persistConfig = {
key: 'root',
storage: AsyncStorage,
};
const persistedReducer = persistReducer(persistConfig, reducers); …Run Code Online (Sandbox Code Playgroud) reactjs react-native react-redux react-native-navigation redux-persist
我正在使用 expo 构建一个 react-native 应用程序,但是,我有一个错误,因此我无法继续构建该应用程序。我什至在错误消息中提到的 node_modules 中查找文件。我正在使用 react-native-gesture-handler 进行屏幕导航。如果我卸载了 react-native-gesture-handler 并删除了导航代码,这会解决我的错误吗?我该如何解决?
应用程序.js
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import Plan from './screens/Plan';
import Home from './screens/Home';
const AppNavigator = StackNavigator({
PlanScreen: { screen: Home },
HomeScreen: { screen: Plan }
});
export default class App extends Component {
render() {
return (
<AppNavigator/>
)
}
}
Run Code Online (Sandbox Code Playgroud)
主页.js
import React, { Component } from 'react';
import { View, Text, Button, TextInput } from 'react-native'; …Run Code Online (Sandbox Code Playgroud) react-native react-native-android react-native-navigation expo react-datepicker
我正在为我的纯RN 0.61.2应用程序使用React-Navigation。当我在调试模式下使用它时,该应用程序运行完美。但是,在发布模式下,当我尝试打开抽屉导航菜单或在选项卡菜单中向下滚动时,应用程序会立即崩溃。
依赖项:
...
"dependencies": {
"@react-native-community/async-storage": "^1.6.2",
"@react-native-community/netinfo": "^4.4.0",
"@react-native-community/slider": "^2.0.2",
"react": "16.9.0",
"react-native": "0.61.2",
"react-native-admob": "^2.0.0-beta.6",
"react-native-gesture-handler": "^1.4.1",
"react-native-reanimated": "^1.3.0",
"react-native-screens": "1.0.0-alpha.23",
"react-native-vector-icons": "^6.6.0",
"react-navigation": "^4.0.10",
"react-navigation-drawer": "^2.2.2",
"react-navigation-stack": "^1.9.3",
"react-navigation-tabs": "^2.5.5"
},
...
Run Code Online (Sandbox Code Playgroud)
我已经将这些代码行添加到android/app/build.gradle的依赖项中:
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
Run Code Online (Sandbox Code Playgroud)
在 App.js 中,我试过
import {enableScreens} from 'react-native-screen';
enableScreens();
Run Code Online (Sandbox Code Playgroud)
并且
import {useScreens} from 'react-native-screen';
useScreens();
Run Code Online (Sandbox Code Playgroud)
用2.0.0-alpha.1,2.0.0-alpha.3和1.0.0-alpha.23版本react-native-screens。
然而,我仍然得到相同的结果:调试模式完美运行,释放模式在抽屉导航滑动或标签导航滚动后急剧崩溃。
我使用adb logcat并看到的解决方案 …
android react-native react-native-android react-native-navigation
我的应用程序有一个 TabNavigator,每个选项卡中都有一个 StackNavigator。通过单击不同的选项卡在堆栈之间导航时,我不会重置堆栈,因此当您更改选项卡时,堆栈包含以前的状态。但是,偶尔从一个选项卡中的屏幕中,我想导航到不同选项卡中的特定屏幕,在这种情况下,我想重置目标选项卡中的堆栈。
TabNavigator
Tab1
StackNavigator
- ScreenA
- ScreenB
Tab2
StackNavigator
- Screen1
- Screen2
Run Code Online (Sandbox Code Playgroud)
我希望能够在 Screen2 上放置一个按钮来重置 Tab1 上的堆栈。
我想知道此处文档中提到的“目标”参数是否有帮助,但没有关于如何使用它的示例。https://reactnavigation.org/docs/navigation-actions/
(我在这里搜索过,但为 4.x 建议的答案似乎不再适用)。谢谢!
react-native-navigation react-navigation react-navigation-v5
我正在尝试反应原生导航,但我遇到了一个简单的问题.
该应用程序有一个没有选项卡的登录页面.(非常类似于facebook登录页面)(图片参考 - 图片只是为了给出一个想法.图片礼貌 - 谷歌 用户登录后,我想转换为基于标签的应用程序,我想要两个不同的导航堆栈标签(在Quora等应用中发生)(图片参考 - 再次图像只是一个参考)
我使用mobx进行状态管理.
我知道这是一个常见的用例,但我对我所知的两个选项感到困惑 -
提供对用户登录变量的反应,并从单屏应用程序更改为基于选项卡的应用程序.(唯一关注的是当isLoggedIn发生反应时缺少动画)例如 - App.js
constructor() {
reaction(() => auth.isLoggedIn, () => app.navigateToHome())
reaction(() => app.root, () => this.startApp(app.root));
app.appInitialized();
Run Code Online (Sandbox Code Playgroud)
}
startApp(root){
switch (root) {
case 'user.login':
Navigation.startTabBasedApp({
tabs: [
{
label: 'One',
screen: 'user.login',
icon: require('./assets/one.png'),
selectedIcon: require('./assets/one_selected.png'),
navigatorStyle: {},
}
]
screen: {
screen: root,
title: 'Login',
navigatorStyle: {
screenBackgroundColor: colors.BACKGROUND,
statusBarColor: colors.BACKGROUND
},
navigatorButtons: {}
}
})
return ;
case 'user.home':
Navigation.startTabBasedApp({
tabs: [ …Run Code Online (Sandbox Code Playgroud)最近,我开始遇到此问题,当我在项目中安装react-native软件包(例如react-navigation:)时,一堆软件包都被删除了(我认为包括react,react-native)。
然后,当我尝试运行命令“ run-android”时,它说它无法识别。
我最近更新到最新的npm和react-native-cli。“ npm install”有问题吗?还是react-native?
node version: 8.1.2 <br/>
react-native-cli: 2.0.1 <br/>
react-native: 0.45.1 <br/>
react-navigation: 1.0.0-beta.11
Run Code Online (Sandbox Code Playgroud)
下面是重新创建的步骤:
Notice in the image above. Seems like all the other packages are removed from the project.<br/><br/>
Run Code Online (Sandbox Code Playgroud)
对这个问题是什么以及如何解决这个问题有任何想法吗?
android npm react-native npm-install react-native-navigation
我正在尝试在我的应用程序上实现深度链接,我正在关注有关此主题的 expo-cli react-native-navigation 文档。基本配置完成后,我无法从我设置的任何链接中的route.params 获取参数。
这是我的代码的示例
链接.js
import * as Linking from "expo-linking";
const prefix = Linking.createURL("/");
const config = {
screens: {
userStartSession: {
path: "home/:itemInfo",
parse: { itemInfo: (itemInfo) => `${itemInfo}` },
},
},
};
const linking = {
prefixes: [prefix],
config,
};
export default linking;
Run Code Online (Sandbox Code Playgroud)
文档在这里: https: //reactnavigation.org/docs/deep-linking/ 这里: https: //reactnavigation.org/docs/configuring-links/
然后将链接导入到Navigation.js
import React from "react";
import linking from "../utils/linking/linking";
export default function Navigation() {
return (
<NavigationContainer linking={linking} fallback={<Text>Cargando...</Text>}>
<Stack.Navigator>
<Stack.Screen
name="userStartSession"
options={{ headerShown: false, …Run Code Online (Sandbox Code Playgroud) 使用自定义样式删除 React 导航 6 中的标头,这是堆栈导航的代码
<NavigationContainer>
<Stack.Navigator
initialRouteName='OtpScreen'
// screenOptions={{
// headerShown: false,
// }}
screenOptions={{ headerMode: 'none' }}
>
<Stack.Screen
options={{ headerShown: false }}
name='Tabs'
component={MyTabs}
/>
</Stack.Navigator>
</NavigationContainer>
Run Code Online (Sandbox Code Playgroud)
标签导航
<Tab.Navigator
useHeaderHeight={false}
screenOptions={
({
headerShown: false,
},
({ route }) => ({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === 'Home') {
iconName = focused
? 'ios-information-circle'
: 'ios-information-circle-outline';
} else if (route.name === 'Settings') {
iconName = focused ? 'ios-list' : 'ios-list';
} …Run Code Online (Sandbox Code Playgroud) react-native ×9
android ×2
expo ×2
detox ×1
mobx ×1
mobx-react ×1
npm ×1
npm-install ×1
react-redux ×1
reactjs ×1