Cannot Access Data From Actioncable On React Front-end
I am trying to broadcast Messages that belong to a certain Game from a rails backend using actioncable. In my messages_controller: def create @game = Game.find(message_params[
Solution 1:
I got help from a TCF at my school.
In my messages channel I changed it to:
defsubscribed@game = Game.find(params[:id][:game_id])
stream_for @gameend
So, stream_for instead of stream_from.
Additionally, I also switched to using the npm package react-actioncable-provider.
My client side javascript is in React and looks like this:
import { ActionCable } from'react-actioncable-provider';
importReact, { Component, Fragment } from'react';
import { CABLE, AUTH_HEADERS } from'../constants';
import { connect } from'react-redux';
importMessagefrom'../components/Message';
classCableextendsComponent {
render () {
console.log("Cable.js")
return (
<Fragment><ActionCablekey={this.props.game_id}channel={{channel: "MessagesChannel", game_id:this.props.game_id }}
onReceived={(data) => console.log("handleReceived: ", data)}
/>
</Fragment>
)
}
}
constmapStateToProps = state => {
return { state }
}
constmapDispatchToProps = dispatch => {
return {
getMessages: data =>dispatch({ type: "LOAD_MSGS", payload: data })
}
}
exportdefaultconnect(mapStateToProps, mapDispatchToProps)(Cable);
I am now able to receive and responses from ActionCable.
Post a Comment for "Cannot Access Data From Actioncable On React Front-end"