标签: react-navigation

使用不带标题的反应导航

有没有办法告诉 react-navigation 库我不想在我的应用程序的所有屏幕中使用标题?

不是在每个屏幕中设置 navigationOptions = { header: null, } ,是否有一些导航器级别的设置我可以只设置一次?

react-native react-navigation

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

条件反应导航标题按钮

我试图让一个按钮出现在headerRightReact 导航屏幕的标题栏中,但我似乎无法让它工作。

我希望开始按钮(在 中的内容headerRight)何时显示props.players.length > 1

任何人都可以指出我正确的方向吗?

react-native react-navigation

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

React Native:出于性能原因重用此合成事件。试图通过状态

我有两个屏幕,想将状态从一个传递到另一个。

简化屏幕 1:

import React, { Component } from 'react';
import { View, TextInput} from 'react-native';
import { buttons } from '../../components/buttons/Buttons';

export default class LoginScreen extends Component {
  constructor(props) {
    super(props);

    this.state = {
      username: '',
    }
  }

  render() {
    return(
      <View>
       ...
        <TextInput onChange={(input) => this.setState({username: input})}></TextInput>
        ...
        <Button.main onPress={() => this.props.navigation.navigate('Register', {username: this.state.username})} title='Create Account'/>
      </View>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我按下按钮,我想转到this.state.username新屏幕。如果我不使用onChange={(input) => this.setState({username: input})}并手动设置用户名的值,如下所示:

this.state = {
    username: 'Test',
}
Run Code Online (Sandbox Code Playgroud)

该值毫无问题地通过,我可以从新屏幕访问它。但是当我尝试在更改this.state.usernameTextInput …

reactjs react-native react-navigation

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

在选项卡导航器中切断的图标图像 - 反应原生

使用 react-navigations - createBottomTabNavigator,我试图将图标向下推一点,但它被切断了,我不确定为什么。

在此处输入图片说明

有没有办法解决这个问题?或者如果你能指导我获得一些关于这方面的信息。

图标样式如下:

<Icon
   name="heart"
   color={tintColor}
   size={28}
   style={{ marginTop: '20' }}
 />
Run Code Online (Sandbox Code Playgroud)

这是标签栏选项:

 tabBarOptions: {
    showLabel: false,
    activeTintColor: '#e91e63',
    indicatorStyle: {
        height: 100
    },
    style: {
        position: 'absolute',
        backgroundColor: 'transparent',
        height: 50,
        width: DEVICE_WIDTH * 0.94,
        borderTopColor: 'transparent',
        borderBottomLeftRadius: 33,
        borderBottomRightRadius: 33,
        borderTopLeftRadius: 10,
        borderTopRightRadius: 10,
        bottom: 0,
        margin: 10,
        shadowColor: '#000000',
        shadowOffset: {
          width: 0,
          height: 0.3
        },
        shadowRadius: 5,
        shadowOpacity: 0.1

    },

    tabStyle: {}
}
Run Code Online (Sandbox Code Playgroud)

提前谢谢了

react-native react-native-android react-native-ios react-navigation

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

React Native Navigation Reload Stack Navigator 主屏幕

我遇到了一个问题,我基本上没有关于如何继续前进的想法。

我有一个带有两个屏幕的 StackNavigator,一个称为“HomeScreen”,另一个称为“SettingsScreen”。当我点击一个按钮时,我会进入“SettingsScreen”。

我还有一个 DrawerNavigator,我可以使用它导航到四个屏幕之一,屏幕 4 是 StackNavigator。

DrawerNavigator:
  Screen1
  Screen2
  Screen3
  Screen4
    - HomeScreen
    - SettingsScreen
Run Code Online (Sandbox Code Playgroud)

(希望它以某种方式可以理解)

所以让我们来解决这个问题......
我的问题是我的“SettingsScreen”具有将项目添加到 AsyncStorage 键的功能(它将它推送到数组,所以最后我有一个列表,我在我的“主屏幕”上呈现),但是当我添加了该项目并返回到我的“主屏幕”时,它不会重新加载页面。我怎样才能让它在满足某些条件甚至更简单时重新加载页面 - 每次离开“SettingsScreen”时如何重新加载页面?

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

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

重定向到屏幕时 componentDidMount 不起作用

我必须componentDidMount在屏幕 A 中列出一组文件(图像),从此屏幕 AI 有另一个屏幕 B 链接,我可以在其中查看文件的详细视图,并且可以选择删除文档。

当使用调用屏幕 A 时

  <TouchableOpacity style={Styles.HomeButton} onPress={ () => this.props.navigation.navigate('Gallery')}>
     <Text style={Styles.HomeButtonText}>View Photos</Text>
  </TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)

componentDidMount 工作正常,但是当我在取消链接回调中删除文件(我正在使用 react-native-fs)时,我正在调用导航

this.props.navigation.navigate('Gallery');
Run Code Online (Sandbox Code Playgroud)

重定向到屏幕 A 工作正常,但componentDidMount无法正常工作,这意味着我仍然可以在列表中看到已删除的文件。即屏幕 A 不刷新,有什么可能的解决方案吗?

react-native react-navigation react-lifecycle

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

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

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

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

react-native react-navigation react-navigation-stack

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

来自标题的 React Native Call Screen 函数

我有更新密码功能ScreenPassword,但我想通过点击屏幕标题上的保存按钮来更新密码。

导航设置.js

const routeConfigs = {
    Password: {
        screen: ScreenPassword,
        navigationOptions: {
            headerTitle: 'Password',
            headerTintColor: '#000',
            headerRight: (
                <View style={styles.headerRight}>
                    <Button
                        style={styles.buttonHeader}
                        color='#000'
                        title="Save"
                        onPress={???????????} />
                </View>
            )
        }
    }
}

export default createStackNavigator(routeConfigs);
Run Code Online (Sandbox Code Playgroud)

屏幕密码

export default class ScreenPassword extends Component {
    updatePassword = () => {

    }
    render() {
        return (
            <ScrollView style={styles.container}>
                <View style={styles.boxForm}>
                    <TextInput
                        style={styles.textInput}
                        placeholder="Old Password"
                        secureTextEntry='true'
                    />
                    <TextInput
                        style={styles.textInput}
                        placeholder="New Password"
                        secureTextEntry='true'
                    />
                    <TextInput
                        style={styles.textInput}
                        placeholder="Confirm Password"
                        secureTextEntry='true'
                    />
                </View>
            </ScrollView>
        )
    } …
Run Code Online (Sandbox Code Playgroud)

javascript react-native react-navigation

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

存在后退按钮时,标题标题不会保持居中,React Native Android 特定,React Navigation

所以我使用React Navigation 3.0 和 React Native。使用标题时,标题标题在 iOS 上默认居中,但在 Android 上左对齐。我使用了一个修复程序来将 Android 的标题标题居中,这很好。当显示后退按钮时,标题标题会被向右推一点。无论哪种方式,我都希望标题保持居中。

所以我尝试给出HeaderLeftContainerStyle一个绝对样式,这样它就不会影响标题的位置,但它没有按预期工作。

有什么建议吗?

下面是一些代码的样子:

const MainCommsStack = createStackNavigator(
  {
    ShowMessages: {
      screen: connect(
        mapStateToProps,
        mapDispatchToProps,
      )(MessageScreen),
    },
    ChatWindow: DetailStack,
  },
  {
    defaultNavigationOptions: {
      headerTitle: 'COMMS',
      headerTitleStyle: [
        baseStyles.whiteHeaderText,
        {
          alignSelf: 'center',
          textAlign: 'center',
          justifyContent: 'center',
          flex: 1,
          textAlignVertical: 'center',
        },
      ],
      headerStyle: {
        backgroundColor: colors.vGreen,
      },
      headerBackImage: <BackButton />,
      headerBackTitle: null,
      headerLeftContainerStyle: {
        position: 'absolute',
        left: 10,
      },
      headerLayoutPreset: 'center',
    },
  },
);
const CommsStack = …
Run Code Online (Sandbox Code Playgroud)

android react-native react-navigation

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

将 Drawer 元素放置在菜单底部

如何将菜单点定位在屏幕的下边缘?最好的解决方案是,如果您可以简单地更改每个元素的导航选项的样式。

这是我的应用程序导航器:

    const AppNavigator = createDrawerNavigator(
      {
        Einkaufsliste: {
          screen: MainScreen,
          navigationOptions: {
            drawerIcon: <Icon name="shopping-cart" />
          }
        },
        Bearbeiten: {
          screen: BasketEditScreen,
          navigationOptions: {
            drawerIcon: <Icon name="edit" />
          }
        }
      },

      {
        contentComponent: CustomDrawerComponent
      }
    );
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

谢谢!

javascript react-native react-navigation

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