mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-01 22:10:27 +00:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
const blackList = [
|
|
'defaultProps',
|
|
'propTypes',
|
|
'contextTypes',
|
|
'childContextTypes',
|
|
'displayName',
|
|
];
|
|
|
|
export const statics = (Target, Component) => {
|
|
Object.keys(Component).forEach(property => {
|
|
if (blackList.indexOf(property) === -1) {
|
|
Target[property] = Component[property];
|
|
}
|
|
});
|
|
};
|
|
|
|
export const fetchDataByPath = (object, path) => {
|
|
if (!object || !path) {
|
|
return false;
|
|
}
|
|
path = path.toString();
|
|
const field = path.split('.');
|
|
let val, key;
|
|
if (field.length) {
|
|
key = field[0];
|
|
// lists[1].name
|
|
if (key.indexOf('[') >= 0) {
|
|
key = key.match(/(.*)\[(.*)\]/);
|
|
if (key) {
|
|
val = object[key[1]][key[2]];
|
|
}
|
|
} else {
|
|
val = object[field[0]];
|
|
}
|
|
if (val) {
|
|
for (let colIndex = 1; colIndex < field.length; colIndex++) {
|
|
val = val[field[colIndex]];
|
|
if (typeof val === 'undefined') {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return val;
|
|
};
|