Привет, ребята, так что я работал с laravel echo в течение последних нескольких дней, все работает хорошо, пока я не попробовал шепот, чтобы послать событие набора текста. теперь проблема, с которой я столкнулся, заключается в том, что я не могу получить доступ к новому состоянию, чтобы очистить тайм-аут, иначе это вызовет странную повторную визуализацию сообщения (пользователь печатает ...), состояние обновляется в хранилище, и я уже проверил его с помощью redux devtools. и я могу получить к нему доступ в компоненте, но я не могу получить к нему доступ в методе TypingNotification или listenForWhisper! какие-либо идеи об этом поведении!?
useEffect(()=>{
startEcho();
},[]);
const startEcho = ()=>{
Echo.join('chat')
.listen('ChatEvent',function(message){
if(message.sender_id !== props.logginData.user.id){
props.updateMessagesAction(message);
}
})
.here(loggedIn=>{
console.log(loggedIn);
props.setUsersHereAction([...loggedIn.map(e=> e.username)]);
})
.joining(user=>{
props.setJoinedUserAction(user.username);
})
.leaving(user=>{
props.setLeavingUserAction(user.username);
})
.listenForWhisper('typing',(e)=>{
TypingNotification(e)
})
};
const TypingNotification = (e) => {
if(props.globalStore.messageTyping.typing){
clearTimeout(props.globalStore.messageTyping.timerId);
}
let timerId = setTimeout(()=> {
props.setUserStopedTyping();
},3000)
props.setUserIsTyping(e.name,timerId);
}