uni-app 页面传递参数Android报错

uni-app 页面传递参数Android报错

问题描述

页面传递参数Android编译报错,Web正常。

传参

toDetailPage(url : String) {  
    const targetUrl : String = `/pages/detail_web/detail_web?url=${url}`;  
    uni.navigateTo({  
        url: targetUrl  
    })  
}

接收参数

onLoad(params) {  
    console.log(`onLoad:${params.url}`);  
    params.url  
},

报错

17:43:54.217 [plugin:uni:app-uts] 编译失败  
17:43:54.217 error: Unresolved reference: url  
17:43:54.217 at pages/detail_web/detail_web.uvue:23:32  
17:43:54.217 21 |    },  
17:43:54.217 22 |    onLoad(params) {  
17:43:54.217 23 |     console.log(`onLoad:${params.url}`);  
17:43:54.217   |                                  ^  
17:43:54.217 24 |     params.url  
17:43:54.217 25 |    },  

17:43:54.217 error: Unresolved reference: url  
17:43:54.217 at pages/detail_web/detail_web.uvue:24:10  
17:43:54.217 22 |    onLoad(params) {  
17:43:54.217 23 |     console.log(`onLoad:${params.url}`);  
17:43:54.217 24 |     params.url  
17:43:54.217   |            ^  
17:43:54.217 25 |    },

更多关于uni-app 页面传递参数Android报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

看官网demo

更多关于uni-app 页面传递参数Android报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在Android平台编译报错是因为uts类型检查更严格。onLoadparams参数需要明确类型定义。

修改接收参数的代码:

onLoad(params: { url?: string }) {  
    console.log(`onLoad:${params.url}`);  
    const targetUrl = params.url  
}

主要问题:

  1. params参数需要类型注解,明确包含url属性
  2. 建议将String改为小写string,这是TypeScript的标准类型
  3. 使用可选属性?处理参数可能不存在的情况

传参部分也可以优化:

toDetailPage(url: string) {  
    const targetUrl = `/pages/detail_web/detail_web?url=${encodeURIComponent(url)}`;  
    uni.navigateTo({  
        url: targetUrl  
    })  
}
回到顶部