JS 中的 route.param 常量应该如何分离?

问题描述

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

Hub.js

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

    ...

    render() {
        return (
            <View style={{flex: 1}}>
                        <TouchableOpacity
                        onPress={() => {
                            this.props.navigation.navigate('Link',{
                              site: 'CB Practice Test 1',});
                          }}
                        >
                            <Text>Practice Test #1</Text>
                        </TouchableOpacity>
                        <TouchableOpacity
                        onPress={() => {
                            this.props.navigation.navigate('Link',{
                              site: 'CB Practice Test 3',});
                          }}>
                            <Text>Practice Test #3</Text>
                        </TouchableOpacity>
                        <TouchableOpacity
                        onPress={() => {
                            this.props.navigation.navigate('Link',{
                              site: 'CB Practice Test 5',});
                          }}
                        >
                            <Text>Practice Test #5</Text>
                        </TouchableOpacity>
                        <TouchableOpacity
                        onPress={() => {
                            this.props.navigation.navigate('Link',{
                              site: 'CB Practice Test 6',});
                          }}
                        >
                            <Text>Practice Test #6</Text>
                        </TouchableOpacity>
                    </View>
            </View>
        )
    }
}

webviewsFolder/Links.js

export default function Links({ route }) {
   
    const link = route.params.site ===
    'CB Practice Test 1' ? 'https://collegereadiness.collegeboard.org/pdf/sat-practice-test-1.pdf' :
    'CB Practice Test 3' ? 'https://collegereadiness.collegeboard.org/pdf/sat-practice-test-3.pdf' :
    'CB Practice Test 5' ? 'https://collegereadiness.collegeboard.org/pdf/sat-practice-test-5.pdf' :
    'CB Practice Test 6' ? 'https://collegereadiness.collegeboard.org/pdf/sat-practice-test-6.pdf' :
    'https://www.kaggle.com/';

  return <WebView source={{ uri: link }} />;
}

我的问题是只有 CB Practice Test 1CB Practice Test 3 返回它们应该返回的页面,但是 CB Practice Test 56 的按钮将返回 {{1} 的网址}.我不知道为什么会发生这种情况,我认为这可能是语法错误,但如果是这样,我不确定它是什么或如何解决它。

解决方法

解决方案

  1. 尝试将“链接”更改为“链接”

pipeline { agent any stages { stage('Test') { steps { git(url: 'https://gitlab/user/auto-test.git',credentialsId: '0ca6a4877f21') sh "chmod +x ./SOWTest/build.sh" sh "./SOWTest/build.sh SOWTest/config.ini" } post { always { emailext attachLog: true,attachmentsPattern: "**/reports/*.html",mimeType: "text/html",to: "user@company.com",subject: "Automated Regression Test - Build [${env.BUILD_NUMBER}]",body: '''<html> ... </html>''' } } } } }

  1. 或者尝试使用 switch case 而不是速记。

    this.props.navigation.navigate('Link',{ site: 'CB Practice Test 1',});