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

Arrozal

Soy un poco nuevo para reaccionar, leí este documento sobre ganchos y tengo una ventana emergente con la opción Mostrar más. La función mostrar más necesita mostrar un texto adicional cuando se hace clic y ocultarse después de que desaparece la ventana emergente.

la función popover es:

export default function Popover(props) {

  const [viewDetails, setViewDetails] = useState(false);

  return (
    <div>
          <h5>{props.title}</h5>

          {viewDetails ?
            'yes, more details here ...' : 'no'}

          <span onClick={() => {setViewDetails(!viewDetails); console.log(viewDetails)}}>Show more</span>

    </div>
  );
}

y necesito una variable local simple que tendrá 'el estado' solo cuando el popover esté activo.

Por qué no puedo hacer algo como:

export default function Popover(props) {

      let viewDetails = false;

      return (
        <div>
              <h5>{props.title}</h5>

              {viewDetails ?
                'yes, more details here ...' : 'no'}

              <span onClick={() => {viewDetails = !viewDetails; console.log(viewDetails)}}>Show more</span>

        </div>
      );
    }

? Veo que el valor es siempre false cuando se muestra el popover y puedo configurarlo en verdadero al hacer clic, pero {viewDetails ? 'yes, more details here ...' : 'no'}no cambia

José D.

Una variable que no es una variable de estado no puede causar una re-renderización.

Puede resolver esto a través del estado de elevación .

Mueva la forma en que establece la vista al componente principal.

function Details(props) {
  return (
    <div>
      <h5>{props.title}</h5>
      <span>{props.details}</span>
    </div>
  );
}

function Popover(props) {
  const [view, setView] = useState(false);

  return (
    <>
      { view && <Details details={props.details} /> }
      <span onClick={() => setView(!view)}>
        Show { view ? 'less': 'more' }
      </span>
    </>
  );
}

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?

Estado de los ganchos de reacción: Indefinido

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

¿Cómo determinan los ganchos de reacción el componente para el que son?

Cómo refactorizar el funcionamiento correcto de los ganchos anidados de reacción

¿Cómo podemos mantener / conservar el valor desplegable seleccionado después de enviar y restablecer el área de texto en el formulario de ganchos de reacción?

El estado de los ganchos de reacción no es el último cuando se usa desde una devolución de llamada sin reacción

El elemento de la matriz de ganchos de estado de reacción no actualiza el estado

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

Restablecer una reacción de estado

¿Cómo restablecer el estado del botón a deshabilitado después de restablecer el formulario?

Iterar a través de los ganchos de estado de reacción de getter y setter

¿Cómo reaccionan los componentes de notación de puntos con los ganchos de reacción?

Cómo obtener el estado cambiado después de una acción asincrónica, utilizando los ganchos funcionales React

Cómo restablecer el estado local con ganchos en React

¿Cómo restablecer uno de los datos en el estado pinia?

¿Cómo restablecer uno de los datos en el estado pinia?

¿Cómo transferir el estado entre los componentes de React con ganchos?

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

¿Cómo realizar una prueba unitaria de los ganchos de reacción mediante el montaje superficial de los componentes funcionales de React?

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

¿Cómo restablecer los valores de estado del componente?

¿Cómo funciona el estado de reacción?

¿Cómo utilizar los ganchos de reacción de forma eficaz?

Reaccionar el estado de los ganchos sin usar el último

Reaccionar estado de los ganchos

¿Cómo puedo restablecer un componente de reacción, incluidos todos los estados accesibles transitivamente?

TOP Lista

CalienteEtiquetas

Archivo