Cómo actualizar el estado en sí mismo usando ganchos de reacción

nntk

Estoy atascado tratando de actualizar el estado de un carrito simple, pero no puedo hacerlo funcionar. Básicamente, cuando hago clic para actualizar el estado, parece que no se obtiene el estado inicial, solo en la segunda ronda. Entonces, ¿cómo hacer que funcione correctamente?

const { product } = props;
const [subTotal, setSubTotal] = useState(0);
const [itemQty, setItemQty] = useState(0);

const handleCart = (event) => {
    const id = product.itemId;
    const price = product.price;
    setSubTotal(subTotal + Number(price));
    setItemQty(itemQty + 1);
}

return (
    <div>
        <Image
            src={product.url}
            alt={product.title}
            className="product__image"
        />
        <div className="product__title">{product.title}</div>
        <div className="product__price">{`$ ${product.price}`}</div>
        <Button
            className="product__qty-btn-p btn btn-primary"
            type="button"
            data-id="increase"
            onClick={() => handleCart()}
            id="basic-addon2"
        >
        Add
        </Button>
    </div>
)
medio ardiente

Eso sucede porque el estado es asíncrono.

Puedes usar useEffectpara console.logese estado:

import React.{useState,useEffect} from "react"
const { product } = props;
const [subTotal, setSubTotal] = useState(0);
const [itemQty, setItemQty] = useState(0);

useEffect(() => console.log(subTotal,itemQty),[subTotal,itemQty])

const handleCart = (event) => {
    const id = event.product.itemId;
    const price = event.product.price;
    setSubTotal(prev => {prev + Number(price)});
    setItemQty(prev => {prev + 1});
}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

¿Cómo simulamos los valores de estado para el componente de reacción usando ganchos de reacción en Jest?

¿Cómo actualizar el estado de la matriz de ganchos de reacción?

¿Cómo actualizar el estado de la matriz de ganchos de reacción?

(Ganchos de React-Select) ¿Cómo puedo actualizar el estado usando la función de renderizado onChange de Select?

Cómo guardar valores de MultiSelect en el formulario de reacción de MultiStep usando ganchos

Cómo guardar valores de MultiSelect en el formulario de reacción de MultiStep usando ganchos

El estado antiguo todavía existe incluso después de actualizar el estado en reacción

Cómo actualizar el estado del objeto json anidado en reaccionar usando ganchos

¿Cómo actualizar condicionalmente el estado en función del estado anterior en el componente funcional de reacción?

¿Cómo ver y actualizar el valor del estado de los ganchos en React devtool?

actualizar el estado de un solo elemento en reacción

Cómo actualizar el estado de redux usando una variable de reacción pasada al componente de un niño

Cómo actualizar instantáneamente el estado de reacción después de reemplazar el valor de la matriz

¿Cómo restablecer el estado de los ganchos de reacción?

reaccionar ganchos, no puedo actualizar el estado a través de accesorios

Cómo actualizar el estado de reacción al usar contextBridge / preload en la aplicación electron

No se puede actualizar la matriz de estado usando ganchos en la condición findIndex

¿Cómo puedo cambiar el estado del botón en el que se hizo clic solo en ganchos de reacción?

Cómo actualizar el estado que se pasa a través del enlace del enrutador de reacción

El objeto de estado de reacción se convierte en "[Objeto de objeto]" al actualizar usando sessionStorage

¿Cómo borrar el estado de reacción en modal después del cierre?

El estado del contexto de los ganchos de reacción no está definido al actualizar la página

Ganchos de reacción en listas dinámicas: más ganchos que el renderizado anterior

¿Cómo evitar la animación de resorte de reacción al actualizar el estado?

¿Cómo puedo ver el estado dentro de una función? usando ganchos

Cómo actualizar el estado de un componente de mapeo de reacción

¿Cómo actualizar el estado de un formulario web nativo de reacción?

¿Cómo actualizar el estado de un componente de reacción desde otro archivo?

¿Cómo actualizar el estado de la variable de reacción?

TOP Lista

CalienteEtiquetas

Archivo