Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

97
Visualizações
Hay un problema con la función de eliminación del componente de reacción implementado a través del método de mapa

Estoy desarrollando usando reaccionar. Está en el proceso de obtener la información contenida en la base de datos y mostrarla en la página web a través del método del mapa. Si elimina una pieza de información utilizando onclick o el método onClose proporcionado por antd, la información también se elimina de la base de datos. en la base de datos, la función funcionó correctamente. pero se elimina la información en la parte inferior, no la información eliminada en la página web. Si actualizo el sitio web, se muestra normalmente, pero no quiero usar la función de recarga de la ventana. Me pregunto por qué sucede esto y cuál es la solución. ¡gracias!

AlertPage

 import React, { useState } from "react"; import useSWR from "swr"; import axios from "axios"; import AlertComponent from "./Sections/AlertComponent"; const fetcher = async (url) => await axios.get(url).then((response) => JSON.parse(response.data.alerts)); function AlertPage() { const { data = [], error } = useSWR("/api/streaming/getAlerts", fetcher, { refreshInterval: 1000, }); const onClose = (data) => { axios.post(`/api/streaming/removeAlerts/${data._id.$oid}`).then(() => { console.log(`${data._id.$oid} deleted`); }); }; const renderAlerts = data.map((alert, index) => { return ( <div key={index}> <AlertComponent alert={alert} index={index} onClose={onClose} /> </div> ); }); if (error) return <div>failed to load</div>; if (data === []) return <div>loading...</div>; return <div>{renderAlerts}</div>; } export default AlertPage;

AlertComponent

 import React, { useState } from "react"; import { Alert } from "antd"; import Marquee from "react-fast-marquee"; function AlertComponent(props) { const [alert, setalert] = useState(props.alert); const [index, setindex] = useState(props.index); return ( <div className="alert" key={index} style={{ display: "flex" }} onClick={() => { props.onClose(alert); }} > <Alert message={`${alert.data.timestamp.$date.substr(0, 19)}`} description={ <Marquee pauseOnHover speed={40} gradient={false}> {`<${alert.data.location}> <${alert.data.name}> <${alert.data.contents}> detected`} </Marquee> } banner /> </div> ); } export default AlertComponent;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto podría estar sucediendo debido al caché local mantenido por swr y dado que no está recuperando los datos después de la eliminación, los cambios no se reflejan en el DOM.

Una opción es activar una recuperación manual para recuperar los datos más actualizados. Podríamos lograr eso cambiando las siguientes líneas:

 const { data = [], error, mutate } = useSWR("/api/streaming/getAlerts", fetcher, { refreshInterval: 1000 });

...

 axios.post(`/api/streaming/removeAlerts/${data._id.$oid}`).then(() => { mutate("/api/streaming/getAlerts"); });

otro enfoque sería confiar en la estrategia de actualización optimista de swr, aquí hay un ejemplo

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda