我正在尝试通过AppContainer传递 Prop 。我能够通过其他组件传递信息,但是我不知道如何通过createAppContainer发送 Prop

在App.js中:

render() {
    return (
        this.state.isLoggedIn ? <DrawerNavigator /> :
<SignedOutNavigator handler={this.saveUserSettings} />
    )
}

在SignedOutNavigator中:
import React from "react";
import { View, Text } from "react-native";
import { createStackNavigator, createAppContainer } from "react-navigation";
import LoginScreen from "../screens/LoginScreen";

const SignedOutNavigator = createStackNavigator({
    Login: {
        // screen: LoginScreen
        screen: props => <LoginScreen screenProps={value => {
            // I need to access props from here
            // like this.props.handler(value)
        }} />,
        navigationOptions: ({ navigation }) => ({
            header: null,
        }),
    }
});

export default createAppContainer(SignedOutNavigator);

最佳答案

您必须将propt的作用域限定在 screenProps 下才能在screen级别访问它。

// App.js
<AppNavigator
  screenProps={{
    handler: () => {},
    hello: "World"
  }}
/>

// Navigator.js
const StackNavigator = createStackNavigator({
  Login: {
    screen: ({ screenProps, navigation }) => {
      screenProps.handler();

      // ...
    },
  },
})

关于react-native - 通过CreateAppContainer传递 Prop ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55002385/

10-09 06:54
查看更多