Wenn ich für ein 'new-message'
Ereignis hören Ich versuche, meine Dashboard
Komponente createMessage
Funktion aufzurufen:Zugang Reagieren Komponente von Socket IO Hörer
var socket = io.connect()
socket.on('new-message', (data) => {
console.log("ALL CLIENTS SHOULD GET THIS MESSAGE")
Dashboard.createMessage(data.id, data.body, data.context, data.urgent, data.customContext)
})
const Dashboard = React.createClass({
createMessage: function(id, body, context, urgent, customContext) {
this.setState({
messages: [
...this.state.messages,
{id: id, user_id: this.state.currentUser, body: body, context: context, urgent: urgent, customContext: customContext}
]
})
}
})
Allerdings bekomme ich einen Fehler: Uncaught TypeError: Dashboard.createMessage is not a function
Gibt es eine Weg, um die Dashboard
createMessage
Methode von außerhalb der Komponente zugreifen?
Alternativ ist es eine Möglichkeit, die Dashboard
component
immer hören, für eine Veranstaltung zu haben, und ich kann etwas tun:
var socket = io.connect()
const Dashboard = React.createClass({
alwaysListenForEvent: function() {
socket.on('new-message', (data) => {
console.log("ALL CLIENTS SHOULD GET THIS MESSAGE")
this.createMessage(data.id, data.body, data.context, data.urgent, data.customContext)
})
}
createMessage: function(id, body, context, urgent, customContext) {
this.setState({
messages: [
...this.state.messages,
{id: id, user_id: this.state.currentUser, body: body, context: context, urgent: urgent, customContext: customContext}
]
})
}
})