React native 如何使用屏幕道具导出stacknavigator?
我正在尝试导出stacknavigator,以便子屏幕可以具有一些屏幕属性。我试过这样的方法:React native 如何使用屏幕道具导出stacknavigator?,react-native,React Native,我正在尝试导出stacknavigator,以便子屏幕可以具有一些屏幕属性。我试过这样的方法: //Router.js import React, { Component } from 'react'; import {StackNavigator} from 'react-navigation'; import { AppRegistry } from 'react-native'; import Home from './Home'; let Router = { Home: {sc
//Router.js
import React, { Component } from 'react';
import {StackNavigator} from 'react-navigation';
import { AppRegistry } from 'react-native';
import Home from './Home';
let Router =
{
Home: {screen: Home, screenProps:"hello"},
}
const Navigator = StackNavigator(Router);
export default Navigator;
那我有
//Home.js
import React, { Component } from 'react';
/* define navOptions */
export default class Home extends Component {
static navigationOptions = navOptions;
componentDidMount()
{
const db = new DB(this);
db.open();
};
constructor(props)
{
super(props);
}
render ()
{
console.log(this.props);
}
}
但是this.props.screenProps
是空的
然后我试着这样做
//Router.js
import React, { Component } from 'react';
import {StackNavigator} from 'react-navigation';
import { AppRegistry } from 'react-native';
import Home from './Home';
let Router =
{
Home: {screen: Home, screenProps:"hello"},
}
const Navigator = StackNavigator(Router);
const nav = <Navigator screenProps="hello" />
export default nav;
//Router.js
从“React”导入React,{Component};
从“react navigation”导入{StackNavigator};
从“react native”导入{AppRegistry};
从“./主页”导入主页;
让路由器=
{
主页:{屏幕:主页,屏幕道具:“你好”},
}
const Navigator=StackNavigator(路由器);
常数导航=
导出默认导航;
但这导致了这个错误
元素类型无效:应为字符串(对于内置组件)
或者一个类/函数(用于复合组件),但得到:object
那么,如何将自定义屏幕属性从路由器文件传递到主屏幕?错误表示screenProps需要的是对象,而不是字符串。 所以电影道具应该是这样的
let Router =
{
Home: {screen: Home, screenProps: {name: "hello"}}
}
如果“name”是您要将“hello”指定给的属性,则。
这至少是您使用TabNavigator的方式
在StackNavigator中,您不会通过屏幕道具,但根据这一点,您的路由器应该是这样的
let Router =
{
Home: {screen: Home, {name: "hello"}}
}
您可以使用this.props.navigation.state.params.name在另一端访问它