uniapp 使用 $emit和$on——$on中无法为data中的变量赋值

问题在于this的指向,

解决办法是使用变量保存$on,其次再为data中的值赋值

以下是具体代码:

1、html代码:

c 复制代码
			<view class="form_picker" @click="selePositionFun()">
				<view class="">
					<input placeholder="请选择职位类别" :disabled="true" v-if="positionOne == ''" />
					<view class="" v-else>{{positionOne}}-{{positionTwo}}</view>
				</view>
			</view>

2、 js代码:

①传递对象:
c 复制代码
A页面传递:(使用.$emit)
	let newarr = {
		one:this.leftList[this.tabindex].type,   //一级名称
		two:this.selectList[0]                   //二级名称
	}
	uni.$emit('positionOne',newarr)
	uni.navigateBack()

B页面接收:(使用.$on)
	onShow() {
		//接收上个页面传递的职位类别
		const on = uni.$on('positionOne', function (data) {
		 console.log('打印data', Object.values(data))    // ["销售", "广告销售"]
			var list = Object.values(data)   //使用Object.values 将对象转换为数组
			this.positionOne = list[0]
			this.positionTwo = list[1]
		})
		//再次赋值
		this.positionOne = on.positionOne
		this.positionTwo = on.positionTwo
			
		console.log('打印111', this.positionOne)   //销售 
		console.log('打印222', this.positionTwo)   //广告销售
	},
②传递数组:
c 复制代码
A页面传递:(使用.$emit)
	uni.$emit('selectList', this.selectList)   //传递选中的数组
	uni.navigateBack()

B页面接收:(使用.$on)
	onShow() {
		//接收上个页面传递的职位类别
		const on = uni.$on('selectList', function(data) {
			// console.log('打印收到的类型',typeof(data))  //object
			this.positionTwo = data.toString() //转为字符串使用
		})
		this.positionTwo = on.positionTwo
		console.log('打印positionTwo', this.positionTwo)   //销售, 广告销售
	},

完成~

相关推荐
27669582922 分钟前
京东e卡滑块 分析
java·javascript·python·node.js·go·滑块·京东
爱写代码的刚子4 分钟前
C++知识总结
java·开发语言·c++
martian6654 分钟前
QT开发:基于Qt实现的交通信号灯模拟器:实现一个带有倒计时功能的图形界面应用
开发语言·qt
冷琴199612 分钟前
基于java+springboot的酒店预定网站、酒店客房管理系统
java·开发语言·spring boot
PleaSure乐事17 分钟前
【Node.js】内置模块FileSystem的保姆级入门讲解
javascript·node.js·es6·filesystem
缘友一世20 分钟前
macOS .bash_profile配置文件优化记录
开发语言·macos·bash
tekin22 分钟前
macos 中使用macport安装,配置,切换多版本php,使用port 安装php扩展方法总结
开发语言·macos·php·port·mac多版本php安装管理·port-select
雷特IT27 分钟前
Uncaught TypeError: 0 is not a function的解决方法
前端·javascript
CSXB9932 分钟前
一、Python(介绍、环境搭建)
开发语言·python·测试工具·集成测试
火红的小辣椒41 分钟前
PHP反序列化7(字符串逃逸)
开发语言·web安全·php