Ошибка заключается в том, что переменные инициализируются позже ретурна - это обусловлено тем, что идет вызов асинхронного запроса.
Собственно, что бы понять на практике, вставьте console.log и посмотрите, что, когда сработает.
const StoryItem = (props) => {
let id, time, score, url, title, author;
if(props.storyId !== "") {
api.getStoryItem(props.storyId)
.then((response) => {
if(response.data) {
console.log('init var');
id = response.data.id;
time = response.data.time;
score = response.data.score;
url = response.data.url;
title = response.data.title;
author = response.data.by;
}
});
}
console.log('return result');
return (
<div>
<ul>
<li>
{props.storyId} {title}
</li>
</ul>
</div>
);
};