@td-design/react-native-picker
Version:
基于 @td-design/react-native 的 picker 组件
43 lines (42 loc) • 1.16 kB
JavaScript
/**
* 根据value,返回对应的label
* @param data 数据
* @param value 选中的值
* @param cascade 是否级联
* @returns 值对应的文本
*/
export function transformValueToLabel(data, value, cascade, hyphen) {
if (!value) return undefined;
if (!cascade) {
var _data$find;
return (_data$find = data.find(item => item.value === value)) === null || _data$find === void 0 ? void 0 : _data$find.label;
}
return value.map(val => {
var _findByValue;
return (_findByValue = findByValue(data, val)) === null || _findByValue === void 0 ? void 0 : _findByValue.label;
}).join(hyphen);
}
/**
* 根据value从一个级联数组中查找节点
* @param data
* @param value
* @returns
*/
function findByValue(data, value) {
let selectedItem = undefined;
function recursion(list, value) {
if (!list) return;
for (let i = 0; i < list.length; i++) {
if (list[i].value === value) {
selectedItem = list[i];
break;
}
if (list[i].children) {
recursion(list[i].children, value);
}
}
}
recursion(data, value);
return selectedItem;
}
//# sourceMappingURL=utils.js.map