提交 25314852 编写于 作者: fxy060608's avatar fxy060608

fix(v3): mp runtime format props value

上级 c911297f
...@@ -595,9 +595,7 @@ function validateProp (key, propsOptions, propsData, vm) { ...@@ -595,9 +595,7 @@ function validateProp (key, propsOptions, propsData, vm) {
if (value !== undefined) { if (value !== undefined) {
const propOptions = propsOptions[key]; const propOptions = propsOptions[key];
const type = getType(propOptions); const type = getType(propOptions);
if (type === Boolean) { value = formatVal(value, type);
value = !!value;
}
const observer = propOptions && propOptions.observer; const observer = propOptions && propOptions.observer;
if (observer) { if (observer) {
// 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他
...@@ -610,6 +608,15 @@ function validateProp (key, propsOptions, propsData, vm) { ...@@ -610,6 +608,15 @@ function validateProp (key, propsOptions, propsData, vm) {
return getPropertyVal(propsOptions[key]) return getPropertyVal(propsOptions[key])
} }
function formatVal (val, type) {
if (type === Boolean) {
return !!val
} else if (type === String) {
return String(val)
}
return val
}
function observe (observer, vm, newVal, oldVal) { function observe (observer, vm, newVal, oldVal) {
try { try {
if (typeof observer === 'function') { if (typeof observer === 'function') {
...@@ -665,12 +672,7 @@ function updateProperties (vm) { ...@@ -665,12 +672,7 @@ function updateProperties (vm) {
if (propsData && properties) { if (propsData && properties) {
Object.keys(properties).forEach(key => { Object.keys(properties).forEach(key => {
if (hasOwn(propsData, key)) { if (hasOwn(propsData, key)) {
const type = getType(properties[key]); vm[key] = formatVal(propsData[key], getType(properties[key]));
if (type === Boolean) {
vm[key] = !!propsData[key];
} else {
vm[key] = propsData[key];
}
} }
}); });
} }
......
...@@ -39,9 +39,7 @@ function validateProp (key, propsOptions, propsData, vm) { ...@@ -39,9 +39,7 @@ function validateProp (key, propsOptions, propsData, vm) {
if (value !== undefined) { if (value !== undefined) {
const propOptions = propsOptions[key] const propOptions = propsOptions[key]
const type = getType(propOptions) const type = getType(propOptions)
if (type === Boolean) { value = formatVal(value, type)
value = !!value
}
const observer = propOptions && propOptions.observer const observer = propOptions && propOptions.observer
if (observer) { if (observer) {
// 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他
...@@ -54,6 +52,15 @@ function validateProp (key, propsOptions, propsData, vm) { ...@@ -54,6 +52,15 @@ function validateProp (key, propsOptions, propsData, vm) {
return getPropertyVal(propsOptions[key]) return getPropertyVal(propsOptions[key])
} }
function formatVal (val, type) {
if (type === Boolean) {
return !!val
} else if (type === String) {
return String(val)
}
return val
}
function observe (observer, vm, newVal, oldVal) { function observe (observer, vm, newVal, oldVal) {
try { try {
if (typeof observer === 'function') { if (typeof observer === 'function') {
...@@ -109,12 +116,7 @@ export function updateProperties (vm) { ...@@ -109,12 +116,7 @@ export function updateProperties (vm) {
if (propsData && properties) { if (propsData && properties) {
Object.keys(properties).forEach(key => { Object.keys(properties).forEach(key => {
if (hasOwn(propsData, key)) { if (hasOwn(propsData, key)) {
const type = getType(properties[key]) vm[key] = formatVal(propsData[key], getType(properties[key]))
if (type === Boolean) {
vm[key] = !!propsData[key]
} else {
vm[key] = propsData[key]
}
} }
}) })
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册