《微信小程序开发从入门到实战》学习二十五

3.3 开发创建投票页面

3.3.13 使用页面路径参数

写了很多重复代码,现在想办法将多选和单选投票页面合二为一。

将单选页面改造作为单选多选共同页面。

修改index.js中的代码,将路径都跳转到第一个单选页面,带上单选或多选的标志,代码如下:

  onTapCreateRadioVote(){

    wx.navigateTo({

      url: '/pages/createVote/createVote?type=radioVote'

    })

  },

  onTapCreateMultiVote(){

    wx.navigateTo({

      url: '/pages/createVote/createVote?type=multiVote',

    })

  }

在页面的跳转路径后面多了些东西,如下所示

?type=multiVote

这个就是路径参数,可以在打开新页面时将一些数据传递给新的页面。以?开始,以=赋值传参,多参的话用&连接。

在/pages/createVote.js文件中的onLoad函数获取页面路径参数,代码如下:

  onLoad(options) {

    console.log(options)

  },

分别从单选和多选投票按钮进入页面,在console面板可以看到option内容:

页面路径参数被转化为Object类型的变量,通过options.type获取参数。页面路径参数永远为string类型,尽量不传递true,false和数字字符串,避免逻辑错误。

接下来修改下代码适配页面路径参数。 

在data加入显示单选还是多选投票类型的标志,在onLoad方法修改单选多选标志和导航栏文字,在表单提交formSubmit也加上单选还是多选的投票标志,代码如下:

data: {

    type:'radioVote',  //用来保存投票类型,默认单选投票,最终需要传递给服务器

...

},

formSubmit(){

    const formData = {

      type:this.data.type,

...

}

...

},

  onLoad(options) {

    console.log(options)

    this.setData({

      type: options.type

    })

    if(options.type === 'radioVote'){

      wx.setNavigationBarTitle({

        title: '创建单选投票',

      })

    }else if(options.type === 'multiVote'){

      wx.setNavigationBarTitle({

        title: '创建多选投票成功好开心',

      })

    }else{

      console.error('wrong page parameter[type]:'+options.type)

    }

    this.formReset()

  }

接下来点击多选投票按钮成功实现。开心。预览效果如下:

3.3 开发创建投票页面结束啦,

接下来开始3.4 开发参与投票页面,敬请期待。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/181341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常见的四种需求分析方法

需求分析是软件开发项目中非常重要的一环,而适当的需求分析方法可以帮助开发团队更好地理解用户需求,准确定义系统的功能和性能要求。通过使用这些方法,开发团队可以更好地规划和管理项目,减少需求变更和返工的风险。 如果缺乏适当…

云贝教育 |【喜报】同学们年末冲刺考试了!恭喜本月MySQL和oracle的考试同学 同一天顺利下证

恭喜MySQL的kang同学和oracle的wang同学本月考试通关,都顺利下证 悄悄的说 : 这月有MySQL优惠试卷,培训考试也有特惠价~ Oracle培训考试年末特别价 保证惊喜!! 最后祝同学们都顺利过关!早日下证&#xf…

【攻防世界-misc】pure_color

1.方法一:用画图工具打开图片,将图片拷贝至虚拟机win7桌面, 点“属性”,颜色设置为“黑白”, 出现flag值。 2.方法二:使用Stegsilve打开,分析图片 将图片打开,按左右键查找&#xff…

String 真的不可变吗?

为什么 String 类不可变 final修饰符: String类被声明为final,这意味着它不能被继承。因此,无法创建String的子类来修改其行为。私有字符数组(char[]): String类内部使用私有的字符数组来存储字符串的内容…

TypeError: Cannot read property ‘sendpost‘ of undefined

箭头函数指向问题,定义let that this 解决

分享5款工作和学习中,经常用到的软件

​ 如今,工作和学习都离不开电脑,所以电脑里的软件自然也是必不可少的,但是电脑软件那么多,不可能每个都装上吧,所以我们要装好用的、实用的,下面给大家分享5款好用到爆的软件,很多懂电脑的人都…

使用支付宝的沙箱环境在本地配置模拟支付并发布至公网调试

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问9. 结语 前言 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙…

java--ArrayList快速入门

1.什么是集合&#xff1f; 集合是一个容器&#xff0c;用来装数据的&#xff0c;类似于数组。 2.有数组&#xff0c;为啥还学习集合 ①数组定义完成并启动后&#xff0c;长度是固定了。 ②集合大小可变&#xff0c;开发中用的更多。 3.ArrayList<E> 是用的最多、最…

OpenStack-train版安装之基础组件安装

基础组件安装 安装MariaDB&#xff08;数据库&#xff09;安装RabbitMQ&#xff08;消息队列&#xff09;安装Memcached&#xff08;缓存&#xff09; 安装MariaDB&#xff08;数据库&#xff09; 安装 # yum install mariadb mariadb-server python2-PyMySQL -y数据库配置 …

公益众筹模式源码模式:水滴筹模式 实现社会价值的最大化 附带完整的搭建教程

随着社会的进步和互联网技术的发展&#xff0c;公益众筹作为一种有效的筹款方式&#xff0c;越来越受到人们的关注。其中&#xff0c;水滴筹模式以其独特的运营方式和强大的社交功能&#xff0c;逐渐成为了公益众筹领域的一种重要模式。该源码系统就是在这样的背景下应运而生&a…

洗地机哪个牌子好用?洗地机选购攻略

传统的清洁方式都是扫把拖把的结合&#xff0c;既繁琐也劳累&#xff0c;每次清洁完后还得累的腰酸背痛的&#xff0c;像厨房这种地方甚至会不容易清洁干净&#xff0c;总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题&#xff0c;不用一遍遍的重复扫地拖地擦地&#…

vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据

实现思路&#xff1a; 1.点击当前行通过row拿到当前行数据。 2.将当前行数据传给子组件。 3.子组件监听父组件传过来的数据并映射在界面。 4.点击保存将修改的值传给父组件更新表格。 5.父组件收到修改过后的值&#xff0c;可以通过字段判断比如id&#xff0c;通过 findIn…

volatile 详解

目录 一. 前言 二. 可见性 2.1. 可见性概述 2.2. 内存屏障 2.3. 代码实例 三. 不保证原子性 3.1. 原子性概述 3.2. 如何解决 volatile 的原子性问题呢&#xff1f; 四. 禁止指令重排 4.1. volatile 的 happens-before 关系 4.2. 代码实例 五. volatile 应用场景 5…

JOSEF 漏电继电器 LLJ-100FG φ45 50-500mA 卡轨安装

系列型号&#xff1a; LLJ-10F(S)漏电继电器LLJ-15F(S)漏电继电器LLJ-16F(S)漏电继电器 LLJ-25F(S)漏电继电器LLJ-30F(S)漏电继电器LLJ-32F(S)漏电继电器 LLJ-60F(S)漏电继电器LLJ-63F(S)漏电继电器LLJ-80F(S)漏电继电器 LLJ-100F(S)漏电继电器LLJ-120F(S)漏电继电器LLJ-125F(S…

Linux基础命令4

find查找操作 1.文件名 上图中&#xff0c;一共有4个部分&#xff0c;分别是find&#xff0c;搜索路径&#xff0c;-name&#xff0c;文件名 find加上文件的路径&#xff08;也就是要查找的文件在根目录下的usr目录下的bin目录底下&#xff09; 加上 -name 加上文件名&a…

如何用网格交易做ETF套利

ETF套利是指利用ETF基金的交易机制&#xff0c;通过短期的买卖差价或组合投资来获取利润。 具体来说&#xff0c;ETF套利最常用的套利方法则是&#xff1a;价格套利和波动套利。 1. 价格套利&#xff1a;当ETF二级市场的价格与一级市场的净值出现偏差时&#xff0c;投资者可以通…

消息中间件——RabbitMQ(五)快速入门生产者与消费者,SpringBoot整合RabbitMQ!

前言 本章我们来一次快速入门RabbitMQ——生产者与消费者。需要构建一个生产端与消费端的模型。什么意思呢&#xff1f;我们的生产者发送一条消息&#xff0c;投递到RabbitMQ集群也就是Broker。 我们的消费端进行监听RabbitMQ&#xff0c;当发现队列中有消息后&#xff0c;就进…

CS2的到来会对csgo产生什么影响?

从左手持枪到教练观战位&#xff0c;周四更新的CS新版本缺乏CSGO里很多关键功能。社区服务器和创意工坊地图&#xff0c;目前最重要的功能缺失是创意工坊地图和社区服务器。这些社区制作的地图长期以来一直是玩家磨练技能的首选场所&#xff0c;从死斗服务器到用来练习瞄准、跑…

动态loading

项目中需要用到动图loading的地方可以下载 https://www.intogif.com/loading/ 高级点的还有css动画;692 Loaders: CSS & Tailwind 692 Loaders: CSS & Tailwind

【带头学C++】----- 八、C++面向对象编程 ---- 8.1 面向对象编程概述

目录 8.1 面向对象编程概述 8.1.1 面向对象概念&#xff08;OOP&#xff09; 8.1.2 面向过程概念 8.1 面向对象编程概述 8.1.1 面向对象概念&#xff08;OOP&#xff09; 面向对象&#xff08;Object-Oriented&#xff09;是一种编程范式&#xff0c;它将程序设计中的数据和…