Beispiel Baum ist this.props.rodexMatrixData
{
"id": "41_0",
"staffNumber": "800001",
"firstName": "adsadsad",
"lastName": "adssadsad",
"role": "CEO",
"phoneNumber": "+4453544534",
"salary": 25000,
"children": [
{
"id": "42_0",
"staffNumber": "800010",
"firstName": "sda",
"lastName": "asaas",
"role": "CTO",
"phoneNumber": "+44874331234",
"salary": 20000,
"email": "[email protected]"
}
]
}
-Code
incForFakeLevel(fakeLevel) {
return ++fakeLevel;
}
mapHierarchy(){
let mappedHierarchy = [];
let hierarchyData = this.getHierarchyData(this.props.rodexMatrixData) //always undefined
if (hierarchyData){
for (let person of hierarchyData){
let margin = 10 * person.level;
mappedHierarchy.push(<div style={{marginLeft: `${margin}px`}}>{person.name}</div>)
}
}
return mappedHierarchy
}
getHierarchyData(tree, hierarchy = [], fakeLevel = 1){
if (!this.props.selectedPerson)
return [];
hierarchy.push({
name: `${tree.firstName} ${tree.lastName}`,
level: fakeLevel
});
if (tree.staffNumber === this.props.selectedPerson.staffNumber){
return hierarchy; // never undefined
}
if (tree.children){
tree.children.forEach(child =>
this.getHierarchyData(child,hierarchy.slice(), this.incForFakeLevel(fakeLevel))
);
}
}
getHierarchyData() immer undefiniert zurückgibt. Aber wenn Sie console.log Hierarchie in getHierarchyData(), ist es nie undefiniert. getHierarchyData() soll ein Array von Daten zurückgeben.RECURSIV Funktion gibt immer undefiniert, auch wenn es nicht
Was ist los?
Bitte ein komplettes Beispiel angeben. Schauen Sie sich [mcve] an. –