菰城鸥鹭 2024-02-03 14:29 采纳率: 84.6%
浏览 2

小程序 JS wx.navigateTo动态跳转带数据

需求:将此url通过utl?url=xx传递到对应界面(不用写对应界面的代码,只需要传递部分的代码
JS
这个是在Data:{}里的

img


这个是在跳转函数内的

img

ML

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-03 14:33
    关注

    引自免费微信小程序:皆我百晓生

    在微信小程序中,如果你想使用 wx.navigateTo 动态跳转至另一个页面并传递参数,你可以这样做:

    // 首先,在当前页面的data中定义要传递的数据
    Page({
      data: {
        urlData: {
          img1: 'your_img1_url',
          img2: 'your_img2_url',
          img3: 'your_img3_url',
        },
      },
    
      // 然后在某个事件触发时(例如tap事件)调用跳转函数,并将数据编码到目标页面路径的query参数里
      navigateToTargetPage: function() {
        const { img1, img2, img3 } = this.data.urlData;
        wx.navigateTo({
          url: `/pages/targetPage/index?url=${encodeURIComponent(JSON.stringify(this.data.urlData))}`,
        });
      },
    });
    

    在上述代码中:

    1. 我们首先在 data 对象中定义了要传递的数据。
    2. 然后我们创建了一个名为 navigateToTargetPage 的函数,当该函数被调用时会执行跳转操作。
    3. wx.navigateTo 方法中,我们将 urlData 对象转换为JSON字符串并通过 encodeURIComponent 进行URL编码,以确保它可以安全地作为查询参数传递。

    然后,在目标页面(这里假设是 /pages/targetPage/index)中,你可以通过 options 参数获取传递过来的数据:

    // 目标页面的js文件
    Page({
      onLoad: function(options) {
        if (options.url) {
          try {
            const urlData = JSON.parse(decodeURIComponent(options.url));
            console.log('接收到的图片数据:', urlData);
            // 根据需要在这里对urlData进行处理,如赋值给页面的data或其他操作
          } catch (error) {
            console.error('解析传递数据时出错:', error);
          }
        }
      },
    });
    

    这段代码将在目标页面加载时运行,解码并解析从上一个页面传来的数据。

    评论

报告相同问题?

问题事件

  • 修改了问题 2月3日
  • 创建了问题 2月3日

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路