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
¿Hay alguna forma de evitar que OnAfterRenderAsync ejecute la función JS para cada representación en Blazor?

Llamo a jquery fun en mi aplicación blazor. Estoy haciendo algunos servicios en Onin. Me gustaría llamar a esta función en mi componente de afeitar. Utilicé el siguiente código en el componente. La función se muestra cuando la página se ha cargado. Pero cuando hago clic o cambio cualquier valor en la página, incluso como un cambio de texto que no está relacionado con la función, la función existía cada vez. ¿Alguna pista?

 protected override void OnAfterRender(bool firstRender) { if(!firstRender) { await JsRuntime.InvokeVoidAsync("TextArea.AddLineToTextArea"); }

Quizás se pregunte por qué puse (!firstRender), la razón es que, de forma predeterminada, firstRender es falso y no sé la razón. Algunas personas dicen, de acuerdo con esta referencia de componente de Blazor Null en First Render , que si su componente está en if/else causará el problema. pero el mio esta afuera

aquí está mi función para agregar un número de línea al área de texto.

 window.TextArea = { AddLineToTextArea:function(){ $(".lined").linedtextarea( {selectedLine: 1} ); // Target a single one $("#inpDefinition").linedtextarea(); } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si invierte la condición if, debería tener lo que necesita:

 protected override void OnAfterRender(bool firstRender) { if (firstRender) { await JsRuntime.InvokeVoidAsync("TextArea.AddLineToTextArea"); } }

Este código significa que JsRuntime.InvokeVoidAsync("TextArea.AddLineToTextArea"); La instrucción se ejecutará solo una vez, cuando el componente la haya renderizado por primera vez.

El método OnAfterRender se ejecuta cada vez que se actualiza el componente, por ejemplo, un usuario hace clic en un botón o lo que sea. Pero el parámetro booleano firstRender es igual a verdadero para la primera representación y será falso después.

about 4 years ago · Juan Pablo Isaza Denunciar
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