Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

186
Vistas
cómo aplicar debounce lodash a la visualización de cadenas base64 reaccionar nativo

Buenos días chicos, necesito mostrar una cadena epub base64 en la vista web, que en realidad funciona para archivos más pequeños, pero una vez que el archivo tiene más de 8 mb, no obtengo una pantalla.

Alguien sugirió desde este enlace: https://github.com/victorsoares96/epubjs-react-native/issues/8#issuecomment-1141395428

Que debería usar debounce lodash, y después de averiguar sobre debounce, me doy cuenta de que es como un retraso de tiempo de espera para buscar algo.

Por favor, ¿cómo puedo aplicar el rebote a mi código a continuación para mostrar mi epub base64 en una vista web si el archivo es bastante grande?

Por favor, compruebe el código a continuación:

 viewFile = async (fileUri, title) => { let file = await FileSystem.readAsStringAsync(fileUri, { encoding: "base64", }); this.setState({ base64Code: base64.decode(file), downloading: false, }); this.props.navigation.navigate("Views", { base64Code: this.state.base64Code, title: title, }); };

Ver a continuación: el código es bastante largo, pero pondré las partes importantes:

 export default class ViewScreen extends React.Component { constructor(props) { super(props); this.state = { title: this.props.navigation.getParam("title"), added: false, base64Code: this.props.navigation.getParam("base64Code"), }; } componentWillUnmount() { this.setState({ base64Code: "", title: "", }); } render() { const html = ` <html> <head> <meta charset="UTF-8"> <script> book = null; var b64 = ${JSON.stringify(this.state.base64Code)}; var bin = atob(b64); var obj = document.createElement('object'); obj.style.width = '100%'; obj.style.height = '842pt'; obj.type = 'application/epub+zip'; obj.data = 'data:application/epub+zip;base64,' + b64; ... </script> </body> </html>`; return this.state.base64Code !== "" && this.state.base64Code !== null ? ( <View style={{ flex: 1 }}> <WebView source={{ html: html }} javaScriptEnabled={true} onMessage={(m) => this.onMessage(m)} /> </View> ) : ( <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}> <Text style={{ textAlign: "center" }}> Book Render Error, Please contact administrator at info@wabp.com.ng </Text> </View> ); } }

Por favor donde aplico el debounce. No entiendo muy bien cómo hacerlo.

Gracias

Tim

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda