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

185
Visualizações
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 à 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