Причина setTimeout
возвращает id таймера.Вы не можете просто вернуть что-то, чтобы среагировать и ожидать, что случится какое-то волшебствоВместо этого вам, вероятно, нужен такой компонент:
class Conversation extends React.Component {
constructor(props) {
super(props);
this.state = { messages: [] };
}
render() {
return this.state.messages.map(data => (<ChatBubble {...data} />));
}
componentDidMount() {
const {messages, delay} = this.props.data;
this.interval = setInterval(() => {
this.setState(prev => ({ messages: prev.messages.concat(messages.shift()) }));
if(!messages.length) clearInterval(this.interval);
}, delay);
}
componentWillUnmount() {
clearInterval(this.interval);
}
}