If you get a new message through socketIO connection you can render it on your screen. But how do you ensure that the users keeps track of which users he has seen or has not seen (using e.g. MongoDB)?
In React Navigation there is a feature which you could use to update the database with 'did read message' when you focus on the certain screen (useIsFocused - https://reactnavigation.org/docs/function-after-focusing-screen/). If the user stays on this screen indefinitely instead without focusing and unfocusing, you could check if the screen is focused upon receiving the socket message and update the database with 'did read message' accordingly.
However, the useIsFocused React Navigation triggers a rerender upon focus/unfocus of a certain screen and I am wondering if maybe there is a general better to way to handle this use case of keeping track of users' unread messages while user stays on a screen and uses socketIO connection to receive updated messages?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…