【问题标题】:Is there a way to conditionally handle a const in a separate js file with react navigation?有没有办法通过反应导航有条件地处理单独的 js 文件中的 const?
【发布时间】:2021-05-06 03:19:49
【问题描述】:

我的 React Native 应用程序中有以下内容:

Hub.js:

export default class Hub extends Component {
    static navigationOptions = {
        header: null
    };

    constructor(props){
        super(props);

        this.state = {
        }
    }

    render() {
        return (
            <View style={{flex: 1}}>
                        <TouchableOpacity
                        onPress={() => this.props.navigation.navigate("Links")}
                        >
                            <Text>Link #1</Text>
                        </TouchableOpacity>
                        <TouchableOpacity
                        onPress={() => this.props.navigation.navigate("Links")}>
                            <Text>Link #2</Text>
                        </TouchableOpacity>
                    </View>
            </View>
        )
    }
}

webviewsFolder/Links.js:

export default function Links() {

    const links = ['https://www.youtube.com/', 'https://www.google.com/'];

    return <WebView source={{ uri: links[0] }} />;
}

我想设置我的应用程序,以便单击 Link #1 按钮导致 Links.js 返回 youtube(又名链接 [0]),单击 Link #2 按钮导致 Links.js 返回 google(链接[1])。我该怎么做?

【问题讨论】:

    标签: javascript react-native react-navigation


    【解决方案1】:

    您可以在导航的同时传递参数

    this.props.navigation.navigate("Links",{site:"Youtube"})
    

    this.props.navigation.navigate("Links",{site:"Google"})
    

    在 Links.js 中

    export default function Links({route}) {
    
        const link = route.params.site==='Google'?'https://www.google.com/':'https://www.youtube.com/';
    
        return <WebView source={{ uri: link }} />;
    }
    

    您可以有一个开关,甚至可以直接从其他组件传递 url 并在链接组件中使用它。

    【讨论】:

    • 我收到一条错误消息“找不到变量:路由”
    • 您正在使用反应导航正确导航?
    • 是的,不确定是否有帮助,但这些是我的导入语句:import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; const Stack = createStackNavigator();
    • 我可以知道您是如何在导航器中使用链接的吗?
    • 您可以查看此示例snack.expo.io/@guruparan/5b84d0
    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多