У меня есть EventSource
, который использует onMessage
функцию loadGames
в componentDidMount
моего React
компонента, поскольку в результате получается массив объектов, для которого я хочу передать аргумент, чтобы найти конкретный объект изэтот массив, но я не могу, потому что когда я определяю onMessage
, я не вызываю функцию loadGames
с каким-либо аргументом, даже если у него есть event
аргумент, скрытый внутри
Я попытался поместить другую функцию внутрьcomponentDidMount
, который использует этот массив, но не может, потому что он выполняет все функции перед обновлением mapStateToProps
//on my component file
url = 'https://wheel-of-fortune-server.herokuapp.com'
source = new EventSource(`${this.url}/stream`)
componentDidMount() {
this.source.onmessage=this.props.loadGames
//if i write this.props.loadGames(event) i get a compilation error
}
//on my action file
export function loadGames (event){
//what i want to do is loadGames (event,gameId)
const {data}=event
const games=JSON.parse(data)
//so i can do const game=games.find(game=>game.id===gameId)
return {
type: LOAD_ALL_GAMES,
payload: games
}
}