您好尝试制作基于 twilio 的对话应用程序
该应用程序运行良好,但每次有人从对话列表中单击对话时,它都会启动一个 useEffect,useEffect 具有以下功能:
const setChannelEvents = useCallback((channel) => {
channel.on('messageAdded', (message) => {
setMessages(prevMessages => [...message, prevMessages])
})
问题是,每次我们离开对话时,听众都会继续,所以每次有人点击对话时,应用程序都会创建大量听众,这并不酷。
想知道当它离开组件时如何关闭监听器
尝试过这样的事情:
useEffect(() => {
Twilio.getClient()
.then((client) => client.getConversationBySid(channelId))
.then((channel) => setChannelEvents(channel))
.catch((err) => console.log('err', err.message))
.finally(() => setLoading(''))
return () => chatClientChannel.current.removeListener('messageAdded')
}, [channelId, setChannelEvents])
没用
任何帮助将不胜感激,谢谢:)