Estoy trabajando en la creación de páginas web personalizadas con la ayuda de Grapesjs. Quiero renderizar la página html en react js que ha sido guardada por el editor de grapesjs en la base de datos. A continuación se muestra el formato en el que se guardan los datos.
En este momento, solo puedo obtener el código html en la ventana de inspección, pero ¿cómo puedo mostrarlo en la página?
import React from "react"; import axios from "axios"; // import {renderWebpage} from "../actions/webpage" export const Page: React.FC = () => { const renderWebpage = axios .get("http://localhost:8080/61ea7fd2268f37443ca4d59a") .then((response) => { console.log("response", response); console.log(response.data, "data"); }); return <div>demo</div>; };
Puedes hacer esto
const App = () => { const data = 'lorem <b>ipsum</b>'; return ( <div dangerouslySetInnerHTML={{__html: data}} /> ); } export default App;
Debe establecer la response.data
. datos en un state
de componente usando el gancho useEffect
y luego representar la cadena HTML usando la propiedad peligrosamente SetInnerHTML.
Prueba como a continuación.
import React, { useState, useEffect } from "react"; import axios from "axios"; // import {renderWebpage} from "../actions/webpage" type HTMLData = { content: { "mycustom-html": string }; }; export const Page: React.FC = () => { const [htmlData, setHtmlData] = useState<HTMLData>({ content: { "mycustom-html": "<p>demo</p>" } }); const renderWebpage = () => { axios .get("http://localhost:8080/61ea7fd2268f37443ca4d59a") .then((response) => { console.log("response", response); console.log(response.data, "data"); setHtmlData(response.data); }); }; useEffect(() => { renderWebpage(); }, []); return ( <div dangerouslySetInnerHTML={{ __html: htmlData?.content?.["mycustom-html"] }} /> ); };
En mi proyecto, html se está renderizando bien, pero ¿cómo renderizar mycustom-css en
<div dangerouslySetInnerHTML={{ __html: htmlData?.content?.["mycustom-html"] }} />