Skip to content

Commit c1dbcf9

Browse files
SimonaliaChenFAKER-A
authored andcommitted
Fix: migrating config not compatible with camel case props and events (ElemeFE#15260)
1 parent fd3ac10 commit c1dbcf9

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/mixins/migrating.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { kebabCase } from 'element-ui/src/utils/util';
12
/**
23
* Show migrating guide in browser console.
34
*
@@ -29,13 +30,15 @@ export default {
2930
const definedEvents = componentOptions.listeners || {};
3031

3132
for (let propName in definedProps) {
32-
if (definedProps.hasOwnProperty(propName) && props[propName]) {
33+
propName = kebabCase(propName); // compatible with camel case
34+
if (props[propName]) {
3335
console.warn(`[Element Migrating][${this.$options.name}][Attribute]: ${props[propName]}`);
3436
}
3537
}
3638

3739
for (let eventName in definedEvents) {
38-
if (definedEvents.hasOwnProperty(eventName) && events[eventName]) {
40+
eventName = kebabCase(eventName); // compatible with camel case
41+
if (events[eventName]) {
3942
console.warn(`[Element Migrating][${this.$options.name}][Event]: ${events[eventName]}`);
4043
}
4144
}

src/utils/util.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,11 @@ export const autoprefixer = function(style) {
135135
});
136136
return style;
137137
};
138+
139+
export const kebabCase = function(str) {
140+
const hyphenateRE = /([^-])([A-Z])/g;
141+
return str
142+
.replace(hyphenateRE, '$1-$2')
143+
.replace(hyphenateRE, '$1-$2')
144+
.toLowerCase();
145+
};

0 commit comments

Comments
 (0)