У меня есть такой код
renderTreeString(key, value) {
return (
<div style={{margin: '3px 0'}} key={key} >
test
</div>
);
}
renderBlocks() {
const { entity } = this.props;
return (
Object.keys(entity.structure).map(key =>
<Input key={key} inputKey={key} inputValue={entity.structure[key]} />
)
);
}
он работает отлично. но вот проблемы становяться когда я хочу сделать какую-нибудь логику внутри map, т.е вот так
renderBlocks() {
const { entity } = this.props;
return (
Object.keys(entity.structure).map(key => {
console.log('test');
<Input key={key} inputKey={key} inputValue={entity.structure[key]} />
})
);
}
У меня не рендит тогда. По сути я понимаю что я в return хочу логику забить и поэтому получаю такой результат. А как правильно сделать в данном случае?
UPDATE:
Сделал вот так
renderTree() {
const { entity } = this.props;
return (
Object.keys(entity.structure).map(key => {
if(typeof entity.structure[key] === 'object') {
Object.keys(entity.structure[key]).map(key2 => {
console.log(entity.structure[key][key2]);
return (
this.renderTreeString(key2, entity.structure[key][key2])
)
})
} else {
return (
this.renderTreeString(key, entity.structure[key])
)
}
})
);
}
Смысл в том что console.log(entity.structure[key][key2]); выводится а вот this.renderTreeString(key2, entity.structure[key][key2]) не отрабатывает нормально
Вообще смысл задачи чтобы вывести объект любой вложенности. Может кто подскажет какое другое решение через рекурсию какую. Сейчас я пытаюсь вывести объект только 2 уровня, т.е вот такой
prntscr.com/cd8duc . Данные храню в object , т.к там соотношение ключ - значение(это объект сущностей)