Я пытаюсь следовать простому руководству по прямому эфиру в React.
Используя код из учебного пособия, например:
return (
<React.Fragment>
<h2>Chat</h2>
{chatClient && channel.id ?
<Chat client={chatClient} theme={'livestream'}>
<Channel channel={channel} Message={MessageLivestream}>
<Window hideOnThread>
<ChannelHeader live />
{!chatIsEmpty ? <MessageList /> : 'Be the first!'}
<MessageInput Input={MessageInputSmall} focus />
</Window>
<Thread fullWidth />
</Channel>
</Chat> : '...Loading'}
</React.Fragment>
);
Я использую функциональный компонент для чата:
const chatClient = new StreamChat(process.env.REACT_APP_STREAM_LIVE_CHAT_ID);
И я инициализирую так:
async function initChat () {
await chatClient.setUser(
{
id: 'brendan',
name: 'Brendan',
},
chatClient.devToken('brendan')
);
const channelInst = await chatClient.channel('livestream', process.env.REACT_APP_STREAM_CHANNEL_ID, {
name: process.env.REACT_APP_STREAM_CHANNEL_NAME,
members: ['brendan']
});
setChatIsEmpty(_.isEmpty((await channelInst.watch()).messages))
setChannel(channelInst)
}
Ошибка получения:
TypeError: messages.entries не является функцией
MessageList.insertDates
src / components / MessageList / MessageList. js: 332
![Full error image](https://i.stack.imgur.com/c5lFg.png)
Если я закомментирую компонент messagelist
, он отобразит успешно, просто без сообщений, очевидно, и я могу отправлять сообщения через ввод.