Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在React-Navigation-3中设置应用程序容器?_Reactjs_React Native_React Navigation_Hybrid Mobile App - Fatal编程技术网

Reactjs 如何在React-Navigation-3中设置应用程序容器?

Reactjs 如何在React-Navigation-3中设置应用程序容器?,reactjs,react-native,react-navigation,hybrid-mobile-app,Reactjs,React Native,React Navigation,Hybrid Mobile App,我想将数据作为initialProps从本机android发送到React Native,但问题在于我使用的StackNavigator 这就是解决方案() 这将在以前版本的react导航中使用,该导航用于将initialProps从react native发送到react native的第一个场景: export default class AwesomeProject extends Component { constructor(props){ super(prop

我想将数据作为
initialProps
从本机android发送到React Native,但问题在于我使用的
StackNavigator

这就是解决方案() 这将在以前版本的
react导航
中使用,该导航用于将
initialProps
从react native发送到react native的第一个场景:

export default class AwesomeProject extends Component {
    constructor(props){
        super(props)
        console.warn(this.props.movie_id);
    }

    render() {
              return <RootStack screenProps={this.props.movie_id} />;
        }
}

const RootStack = createStackNavigator(
    { 
        home:  {screen: Details},
        genre: {screen: Genre},
    },
    { 
        initialRouteName: 'home',
    }
);
导出默认类AwesomeProject扩展组件{
建造师(道具){
超级(道具)
console.warn(this.props.movie_id);
}
render(){
返回;
}
}
const RootStack=createStackNavigator(
{ 
主页:{屏幕:详细信息},
类型:{屏幕:类型},
},
{ 
initialRouteName:“主页”,
}
);
但是
react-navigation-3
开始,您必须直接设置应用程序容器


有人能告诉我如何使用
createAppContainer()
实现这一点吗?

作为示例,来自我自己的一个项目:

import {
  createSwitchNavigator,
  createAppContainer
} from 'react-navigation';

const SwitchNavigator = createSwitchNavigator(
  {
    ScreenOne,
    ScreenTwo,
    ScreenThree
  }
);
const AppContainer = createAppContainer(SwitchNavigator);

class App extends Component {
  render() {
    return (<AppContainer />);
  }
}
导入{
createSwitchNavigator,
createAppContainer
}从“反应导航”;
const SwitchNavigator=createSwitchNavigator(
{
第一屏,
第二幕,
第三幕
}
);
const AppContainer=createAppContainer(SwitchNavigator);
类应用程序扩展组件{
render(){
返回();
}
}

多亏了@David Gevorgyan,我成功地从原生安卓系统发送了
初始道具
,以响应原生安卓系统的
StackNavigator
第一个场景,如下所示:

export default class AwesomeProject extends Component {
    constructor(props){
        super(props)
    }

    render() {
    return <RootStack screenProps={this.props.movie_id} />;
  }
}

const RootStack = createAppContainer(StackNavigator)

const StackNavigator = createStackNavigator(
    { 
        home:  {screen: Details},
        genre: {screen: Genre},
    },
    { 
        initialRouteName: 'home',
    }
);
导出默认类AwesomeProject扩展组件{
建造师(道具){
超级(道具)
}
render(){
返回;
}
}
const RootStack=createAppContainer(StackNavigator)
const StackNavigator=createStackNavigator(
{ 
主页:{屏幕:详细信息},
类型:{屏幕:类型},
},
{ 
initialRouteName:“主页”,
}
);

请查看演示示例:谢谢,但它现在可以工作了。