You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo Router无法传递链接作为参数:React Native导航跳转报错求助

解决React Native导航传递URL参数失败的问题

问题原因

直接在导航URL的query参数里传入完整HTTPS URL,会破坏整个URL的规范结构,导致iOS系统解析时判定参数非法,触发NSOSStatusErrorDomain Code=-50错误。

解决方法

  1. 编码URL参数
    跳转前用encodeURIComponent()对图片URL转义,将特殊字符转换为合法的URL格式:

    // 跳转页面时处理参数
    const imageUrl = "https://www.google.com/";
    const encodedImageUrl = encodeURIComponent(imageUrl);
    navigation.navigate('Detail', { id: 1, image: encodedImageUrl });
    
  2. 解码还原参数
    在详情页获取参数后,用decodeURIComponent()恢复原始URL:

    // 详情页解析参数
    const { id, image } = route.params;
    const originalImageUrl = decodeURIComponent(image);
    
  3. Deep Link场景适配
    如果用Deep Link跳转,要确保生成的链接里query参数是编码后的格式,示例如下:

    /tabs/detail?id=1&image=https%3A%2F%2Fwww.google.com%2F
    

额外提示

  • 所有包含://、/、?这类特殊字符的参数,都建议做URL编码,避免导航解析失败。
  • React Navigation的Shared Element功能不受编码影响,解码后正常使用图片URL即可实现元素共享效果。

内容的提问来源于stack exchange,提问作者Sinan Öztürk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:22:56