das ist mein Arbeitscode jedochWie man reagiert, um die Benutzeroberfläche neu zu rendern, mit Socket?
import socket from 'components/io/socket';
import store from 'components/store';
// globally available socket connection
class ChatBox extends React.Component {
componentDidMount(){
socket.on("message", this.props.addChat.bind(this));
// this.props.addChat is reduxer actions.
}
}
, ich mache mir Sorgen, dass ein solcher Code, würde wahrscheinlich ein Speicherleck einführen, da die ältere Chatbox Komponente noch von der Steckdose refered würde.
Ich versuchte, es in sich ändern:
import socket from 'components/io/socket';
import store from 'components/store';
socket.on("message", store.dispatch(addChat({...}))
class ChatBox extends React.Component {
render(){ ... }
}
jedoch der zweite Code den HTML auslösen tut erneut gerendert werden, obwohl, wenn ich den Breakpoint verwenden, und fordert, store.getState()
das Ergebnis ändern, nachdem die Buchse empfangene Nachricht .