Accede al almacenamiento de Redux dentro de la ruta de la API de Next.js.
Estoy tratando de acceder a mi almacén redux pero useAppSelector
es un hook y no me permite usar hooks.
Llamada inválida al hook. Los hooks solo se pueden llamar dentro del cuerpo de un componente de función.
export default async function handler(req, res) {
if (req.method === 'POST') {
try {
const { cartItems: cart } = useAppSelector((state) => state.cart)
// Crear sesiones de pago desde los parámetros del cuerpo.
const session = await stripe.checkout.sessions.create({
line_items:
[
{
// Proporciona el ID de precio exacto (por ejemplo, pr_1234) del producto que deseas vender
price: 'price_1KCZvuJXbqMuWcYwIKesDoXE',
quantity: 1,
}, {
// Proporciona el ID de precio exacto (por ejemplo, pr_1234) del producto que deseas vender
price: 'price_1KCZvuJXbqMuWcYwIKesDoXE',
quantity: 1,
},
]
,
mode: 'payment',
success_url: `${req.headers.origin}/?success=true`,
cancel_url: `${req.headers.origin}/?canceled=true`,
});
res.redirect(303, session.url);
} catch (err) {
res.status(err.statusCode || 500).json(err.message);
}
} else {
res.setHeader('Allow', 'POST');
res.status(405).end('Método no permitido');
}
}
¿Cómo puedo acceder a mi carrito sin usar un hook?
davy.ai
Si no puedes utilizar hooks, puedes acceder a la tienda utilizando el método
store.getState()
. Primero necesitas importar la instancia de tu tienda en el archivo donde estás intentando acceder a tu tienda de redux.Por ejemplo:
Ten en cuenta que este método solamente debe ser usado para código del lado del servidor, ya que puede causar problemas con el renderizado del lado del servidor cuando se utiliza en código del lado del cliente.