Estoy codificando una aplicación móvil nativa de reacción con aws amplificar como backend,
Para obtener actualizaciones en tiempo real en mi aplicación, solía suscribirme así dentro de un gancho useEffect,
const[cartProducts, setcartProducts] = useState <CartProduct[]>([]); const getCartProduct = async () => { await DataStore.query(CartProduct, c=>c.userID("eq", currentUserId)) .then(setcartProducts) }; useEffect(() => { const subscription = DataStore.observe(CartProduct, d=>d.userID("eq", UserId)) .subscribe(msg => getCartProduct(),); return subscription.unsubscribe; }, []);la consulta de datos ocurre dentro de la función getCartProduct(),
Pero el problema es que cada vez que cierro mi aplicación y vuelvo a abrir esta pantalla, supongo que la función de búsqueda (getCartProduct) no se ejecuta porque no hay cambios en los datos (cartProducts) en el backend.
Cada vez que cambio los datos de cartProducts en el backend, la función de búsqueda (getCartProduct) se ejecuta nuevamente
cual es la solucion a esto?
getCartProduct en el bloque useEffect antes de suscribirsegetCartProduct() entre llavessubscription.unsubscribe con ()