Me pregunto si es posible usar useSWR de Vercel si una condición es true
. Es decir, si RoleOne es verdadero, llame a:
let { data: roleOneData, error: roleOneError } = useSWR(
"/api/getRoleOneInfo",
fetcher
)
Mi aplicación Next.js se ocupa de diferentes roles de usuario, y todos los roles de usuario comparten el mismo Shell de la aplicación, lo que significa que llamo a todas las API específicas del rol de usuario en el Shell de la aplicación. Me gustaría llamar solo a la API que necesito si puede ver que un rol de usuario específico es verdadero. Obtengo los roles de la userData
API.
Aquí están mis buscadores que se utilizan en varias funciones:
let { data: userData, error: userError } = useSWR("/api/getUserInfo", fetcher)
let { data: roleOneData, error: roleOneError } = useSWR(
"/api/getRoleOneInfo",
fetcher
)
let { data: roleTwoData, error: roleTwoError } = useSWR(
"/api/getRoleTwoInfo",
fetcher
)
Si inicio sesión como RoleOne
, obtengo errores de API getRoleTwoInfo
y viceversa. Me gustaría evitar llamar a la API de RoleTwo si estoy conectado como RoleOne y viceversa. ¿Cómo puedo lograr eso?
Solución del problema
Definitivamente posible y descrito en esta página en la documentación.
Solo tiene que hacer que su clave (la url de la solicitud en su caso) sea falsa cuando no desea que se realice la solicitud.
let { data: userData, error: userError } = useSWR("/api/getUserInfo", fetcher)
let { data: roleOneData, error: roleOneError } = useSWR(
userData?.role === "one"? "/api/getRoleOneInfo": null,
fetcher
)
let { data: roleTwoData, error: roleTwoError } = useSWR(
userData?.role === "two"? "/api/getRoleTwoInfo": null,
fetcher
)
No hay comentarios.:
Publicar un comentario