在我的react-本地项目中,我已经安装了以下版本的React-Navigation:
NPM安装react-navigation@^1.0.0-beta.11
然后运行命令:
npm install
在所有这些安装之后,我创建了一个名为 weycomescreen.js 的类,这是下面给出的代码 -
WEYCOMESCREEN.JS
import React, { Component } from "react";
import {
View,
StyleSheet,
Button
} from "react-native";
class WelcomeScreen extends Component {
static navigationOptions = {
header: 'none'
}
render() {
return (
<View style={styles.container}>
<Button title="Log in" onPress={() => this.props.navigation.navigate('LoginScreen')}/>
<Button title="Sign Up" onPress={() => this.props.navigation.navigate('SignUpScreen')}/>
</View>
)
}
}
export default WelcomeScreen;
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center'
}
});
之后,我在 app.js 文件中将此类路由。这是下面给出的代码:
app.js
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { StackNavigator } from 'react-navigation'
import WelcomeScreen from './screens/WelcomeScreen'
export default class App extends React.Component {
render() {
return (
<AppStackNavigator/>
);
}
}
const AppStackNavigator = new StackNavigator({
WelcomeScreen: { screen: WelcomeScreen }
})
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
然后在运行项目后,我会继续遇到此错误:
不变违规:必须在组件中渲染文本字符串
不变违规:必须在组件中渲染文本字符串
我不明白为什么我会遇到这个错误?我尝试了遵循解决方案 -
不变违规:必须在A&lt; text&gt; gt;中呈现文本字符串。组件
https://github.com/facebook/react-native/issues/20084
他们都没有对我有帮助。因此,如果有人帮我解决这个问题,那就太好了。
您在标题中使用了错误的值
static navigationOptions = {
header: "none"
};
用null
"none"
static navigationOptions = {
header: null
};
const AppStackNavigator = new StackNavigator({
WelcomeScreen: { screen: WelcomeScreen }
})
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
}**,**
});
是这个逗号吗?
我会考虑使用React的最新导航软件包react-navigation-stack
(目前在2.0 alpha -link中)。
您将与以前的react-navigation
堆栈导航器一样实现。
import React from 'react'
// ...
import { createAppContainer } from 'react-navigation'
import { createStackNavigator } from 'react-navigation-stack'
const HomeStack = createStackNavigator(
{ HomeScreen, AboutScreen },
{ initialRouteName: "HomeScreen" }
)
HomeStack.navigationOptions = {
headerShown: false, // a more concise option, to avoid future deprecation.
}
// ... continues in next code block
不要忘记将您的应用程序包装在react-navigation
AppContainer
中。
// ...
const AppNav = createAppContainer(HomeStack)
export default AppNav
当然,如果您要在其他屏幕中修改navigationOptions
,则只需在该屏幕组件中附加替代选项:
class HomeScreen extends React.Component {
static navigationOptions = {
headerShow: false
}
render() {
return (<View><Text>Welcome home.</Text></View>)
}
}
如上所述,我们现在可以使用导航选项:标题:false 。
使用此新软件包,您将为React导航软件包的未来迭代做准备。
Note ;'''被视为样式选择。