例ツリーthis.props.rodexMatrixData、undefinedを返します
{
"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]"
}
]
}
コード
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()常にundefinedを返します。しかしconsole.log の階層の場合 getHierarchyData()は決して定義されません。 getHierarchyData()は、データの配列を返すことになっています。Recursiv関数は常にそれが
何が間違っていますか?
完全な例を挙げてください。 [mcve]を見てください。 –