Ho una semplice sottoscrizione Meteor e visualizzo un messaggio di caricamento mentre i dati vengono caricati. Ma non so come visualizzare il messaggio di errore se l'abbonamento fallisce.Meteor 1.3 + React: rileva l'insuccesso della sottoscrizione?
export const MyAwesomeComponent = createContainer(() => {
let sub = Meteor.subscribe('some-data');
if (!sub.ready()) return { message: 'Loading...'};
if (sub.failed()) return { message: 'Failed.' }; // How to do this?
return {
data: Data.find().fetch()
}
}, MyInternalRenderComponent);
problema è, l'oggetto di sottoscrizione non ha un metodo failed()
, solo una query ready()
. Come passare l'errore di un abbonamento come oggetti di scena in un metodo createContainer()
?
So che il metodo Meteor.subscribe
ha un callback onStop
per questo caso, ma non so come incollarlo insieme per passare una proprietà.
Gli abbonamenti non hanno uno stato non riuscito, forniscono solo un set di dati per la copia del database client. Immagino che tu voglia fornire i dati solo se viene soddisfatta una determinata condizione. In questo caso, controlla la condizione in modo indipendente, ad esempio creando un metodo. –
Devono avere uno stato non riuscito. Cosa succede se ho sbagliato a digitare il nome della pubblicazione e non esiste tale pubblicazione? – aedm
Quindi il callback 'onStop' viene chiamato con un oggetto error. –