Измените вашу функцию так, чтобы она возвращала массив:
const myLoop = (loopNumber, pageStart) => {
let html = [];
for (let i = 0; i < loopNumber; i++) {
let singleLoop = <DiaryByDay loop={i} />;
html.push(singleLoop);
}
return html;
};
Если вы вернете огромную строку, очевидно, она попытается отобразить строку.
И вы также должны добавить ключевую опору для каждого компонента DiaryByDay. Использование значения индекса может быть не очень хорошей идеей, потому что если вы позже удалите некоторые элементы в вашем массиве, индексы изменятся.
Так что let singleLoop = <DiaryByDay loop={i} />;
должно быть
let singleLoop = <DiaryByDay key={ ...something unique for each element} loop={i} />;