Używam kanału zdarzeń sx sx. Mam konkretny przypadek użycia, w którym chcę uzyskać stan StoreStore, gdy zdarzenie zostanie wywołane, ponieważ eventChannel nie jest funkcją generatora i nie mogę użyć efektu select sagas redux. Każdy inny sposób, aby to osiągnąć?Użyj efektu wyboru w normalnej funkcji/zdarzeniach Kanały
Próbowałem również importować sklep i używać store.getState()
, ale jestem coraz niezdefiniowany, ponieważ plik sagi jest importowany przed inicjalizacją sklepu.
function subscribe(socket) {
return eventChannel(emit => {
socket.subscribe(listenerTopic, {qos: 1});
socket.on('reconnection',() => {
// i need to fetch latest unread message, for that i need to get timestamp
// for last message received which is in store so the command will be to
// send sinceDate i.e last message timestamp and untilDate that is currentDate
})
}
Rozwiązanie prawdopodobnie będzie polegało na przeniesieniu pewnej logiki z funkcji EventEmitter do sagi podejmującej jej działania. Czy możesz udostępnić jakiś kod, abyśmy mogli zobaczyć, co robi wydarzenie Event/saga podejmujące swoje wydarzenia? – VonD
Mój przypadek użycia to Potrzebuję pobrać najnowszą nieprzeczytaną wiadomość, gdy połączenie zostanie przywrócone, ponieważ potrzebuję uzyskać znacznik czasu dla otrzymanej ostatniej wiadomości, która jest w magazynie, więc polecenie będzie do wysłać odData tj. Znacznik czasu ostatniej wiadomości i do daty, że jest currentDate –