Agrego return antes de jsx pero detiene la iteración
function App(){ function recursion(object){ for(let key in object){ if(typeof object[key] === 'object'){ <div>{key}</div> // this jsx needs to render recursion(object[key]) } else { <div>{key}</div> // and this one } } } return { <> {recursion(someObject)} </> } }Debe return el JSX; no puede estar simplemente tirado en la función. Algo como esto debería hacer el truco:
function App(){ function recursion(object){ const ret = []; for(let key in object){ if(typeof object[key] === 'object'){ ret.push ( <> <div>{key}</div> {recursion(object[key])} </> ); } else { ret.push(<div>{key}</div>); } } return ret; } return ( <> {recursion(someObject)} </> ); }