React native 从导航器外部向抽屉导航器的contentComponent发送参数

React native 从导航器外部向抽屉导航器的contentComponent发送参数,react-native,react-navigation,React Native,React Navigation,我有一个屏幕,里面嵌入了一个抽屉显示器 import React, { Component } from "react"; import { GlobalNavigator } from "../navigators/globalNavigator"; export default class GlobalScreen extends Component { constructor(props) { super(props); this.doSomet

我有一个屏幕,里面嵌入了一个抽屉显示器

import React, { Component } from "react";
import { GlobalNavigator } from "../navigators/globalNavigator";

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

        this.doSomething= this.doSomething.bind(this);
    }

    doSomething() {
        // do something
    }

    render() {
        return (
            <GlobalNavigator doSomething={this.doSomething} />
        );
    }
}
import React,{Component}来自“React”;
从“./navigators/GlobalNavigator”导入{GlobalNavigator};
导出默认类GlobalScreen扩展组件{
建造师(道具){
超级(道具);
this.doSomething=this.doSomething.bind(this);
}
doSomething(){
//做点什么
}
render(){
返回(
);
}
}
我有一个抽屉导航器,我在其中指定“contentComponent”

从“React”导入React;
从“react navigation”导入{DrawerNavigator};
从“./screens/MainScreen”导入主屏幕;
从“./components/MenuContent”导入菜单内容;
导出常量GlobalNavigator=DrawerNavigator(
{
主要内容:{
屏幕:主屏幕
}
},
{
抽屉宽度:350,
抽屉位置:“左”,
initialRouteName:“主”,
backBehavior:“初始路由”,
contentComponent:props=>
}
);

我想从屏幕向navigator发送一个参数,以便将其传递给“contentComponent”。我怎样才能做到这一点?我试过使用“screenProps”,但在“props”中没有出现这一点:
contentComponent:props=>
1。存储全局屏幕实例

import React, { Component } from "react";
import { GlobalNavigator } from "../navigators/globalNavigator";

var globalScreen = undefined;

export default class GlobalScreen extends Component {
    constructor(props) {
        super(props);
        globalScreen = this;
        this.doSomething= this.doSomething.bind(this);
    }

    doSomething() {
        // do something
    }

    //param to contentComponent
    param = {abc:'123'};
    someMethod = ()=>{ 
         //code
    };

    render() {
        return (
            <GlobalNavigator doSomething={this.doSomething} />
        );
    }
}
实现,但不是很优雅

import React, { Component } from "react";
import { GlobalNavigator } from "../navigators/globalNavigator";

var globalScreen = undefined;

export default class GlobalScreen extends Component {
    constructor(props) {
        super(props);
        globalScreen = this;
        this.doSomething= this.doSomething.bind(this);
    }

    doSomething() {
        // do something
    }

    //param to contentComponent
    param = {abc:'123'};
    someMethod = ()=>{ 
         //code
    };

    render() {
        return (
            <GlobalNavigator doSomething={this.doSomething} />
        );
    }
}
export const GlobalNavigator = DrawerNavigator(
    {
        Main: {
            screen: MainScreen
        }
    },
    {
        drawerWidth: 350,
        drawerPosition: "left",
        initialRouteName: "Main",
        backBehavior: "initialRoute",
        contentComponent: props => <MenuContent getMainScreen={() => {return globalScreen;} } {...props} />
    }
);
let globalScreen = this.props.getMainScreen();
let param = globalScreen.param;//param you want to pass to menuContent
globalScreen.someMethod();//method in globalScreen