Estoy trabajando en una aplicación de chat de 2 pantallas que muestra una lista de usuarios conectados en la primera pantalla y cuando se hace clic en un usuario, los datos del usuario se almacenan en el estado redux y se recuperan en la segunda pantalla para cargar el mensaje del usuario en la segunda pantalla.
En mi máquina local, carga los datos del usuario en la segunda pantalla, pero cuando implementé heroku, no carga los datos del usuario. no sé si sucede tan rápido y debería retrasarse unos milisegundos
PANTALLA UNO
const showChat = (id) => { dispatch({ type: 'SET_CHAT_USER', payload: id, }) } return ( <div style={{ overflowY: 'scroll', height: 500 }}> {chats.length > 0 ? chats.map((chat, i) => ( <Typography variant='subtitle2' onClick={() => showChat(chat.messengerId)}> {chat.firstName} {chat.lastName} </Typography> )) : 'No Chat'} </div> )PANTALLA DOS
import * as io from 'socket.io-client' const MessageChat = () => { const { chatUser } = useSelector((state) => ({ ...state })) // retrieved the id const socket = useRef() useEffect(() => { const loadMessages = () => { socket.current.emit('loadMessages', { userId: user._id, messagesWith: chatUser, }) socket.current.on('messagesLoaded', ({ chat }) => { setMessages(chat.messages) setBannerData({ firstName: chat.messagesWith.firstName, lastName: chat.messagesWith.lastName, profilePicUrl: chat.messagesWith.profilePicUrl, }) openChatId.current = chat.messagesWith._id divRef.current && scrollDivToBottom(divRef) }) socket.current.on('noChatFound', async () => { const { firstName, lastName, profilePicUrl } = await ChatGetUserInfo( chatUser, user.token ) setBannerData({ firstName, lastName, profilePicUrl }) setMessages([]) openChatId.current = chatUser }) } if (socket.current && chatUser) { loadMessages() } }, [chatUser]) }