今天遇到了,el-select渲染页面回显数据时没有显示文字,而是显示了id。
原因是:因为渲染的数据和下拉选框对应的key的数据类型不一致
下拉选框调的后端接口,返回的id时数字类型的,
回显数据对应的id值是字符串类型的
解决方法:在调基本信息的接口中将回显的数据的数据类型转成数字类型
this.shopBasicInfo.platformHospitalId = parseInt(data.platformHospitalId)
将字符串转成数字的方法:
1.parseInt()
解析一个字符串并返回一个整数。允许空格。仅返回第一个数字。
myString = '129'
console.log(parseInt(myString)) // expected result: 129
a = 12.22
console.log(parseInt(a)) // expected result: 12
a = "123567a567px";
//调用parseInt()函数将a转换为Number
/*
* parseInt()可以将一个字符串中的有效的整数内容去出来,
* 然后转换为Number
*/
2.Number()
字符串–>数字
1).如果是纯数字的字符串,则直接将其转换为数字
2).如果字符串中有非数字的内容,则转换为NaN
3).如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔 --> 数字
true 转成 1
false 转成 0
null --> 数字 0
undefined --> 数字 NaN
Number("10"); // returns 10Number(" 10 "); // returns 10Number("10.33"); // returns 10.33
3.使用一元运算符 (+)
const x = 25;
const y = -25;
console.log(+x); // expected output: 25
console.log(+y); // expected output: -25
console.log(+''); // expected output: 0
4.使用parseFloat()
解析一个字符串并返回一个数字。允许空格。仅返回第一个数字。
parseFloat("10"); // returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN
5.乘以数字
将字符串值乘以1不会改变值,并且默认情况下它会转换为数字。
str = '2344'
console.log(str * 1) // expected result: 2344
6.双波浪号 (~~) 运算符
str = '1234'
console.log(~~str) // expected result: 1234
negStr = '-234'
console.log(~~negStr) // expected result: -234