web-dev-qa-db-fra.com

Comment puis-je écrire dans la console du navigateur via Blazor Webassembly?

En JavaScript, nous pouvons utiliser l'appel suivant pour écrire une sortie de débogage à la console du navigateur:

console.log("My debug output.");

Sortie dans Google Chrome:

console output in google chrome

Comment puis-je enregistrer "ma sortie de débogage" dans mon composant à la console du navigateur via Blazor Webassembly?

<button @onclick="ClickEvent">OK</button>

@code {

    private void ClickEvent()
    {
        // console.log("My debug output.");
    }
}
8
Simon

Je fais habituellement quelque chose comme ça:

Console.WriteLine("My debug output.");

Si c'est une application de serveur Blazor, je vois le message dans la fenêtre d'entrée, s'il s'agit du blazor Webassembly, je vois le message dans la console du navigateur

J'espère que cela t'aides...

3
enet

Vous pouvez utiliser un ILogger<T> Cela vous donne la possibilité d'écrire un avertissement ou une erreur dans la console:

@using using Microsoft.Extensions.Logging
@inject ILogger<MyComponent> _logger
...
@code {

     protected override void OnInitialized()
     {
          _logger.LogWarning("warning");
          _logger.LogError("error");
     }
}


4
agua from mars

Si vous utilisez le serveur Blazor (non Webassembly), vous ne pouvez écrire que sur la console du navigateur à l'aide de JSinterop. J'ai écrit une classe wrapper comme ceci:

public class JsConsole
{
   private readonly IJSRuntime JsRuntime;
   public JsConsole(IJSRuntime jSRuntime)
   {
       this.JsRuntime = jSRuntime;
   }

   public async Task LogAsync(string message)
   {
       await this.JsRuntime.InvokeVoidAsync("console.log", message);
   }
}

Ensuite, dans votre page, vous pouvez injecter le JSConsole et l'utiliser:

await this.JsConsole.Log(message); //Will show in the browser console.
3
Greg Gum

Juste creille une variable et le changer si tes choses fonctionnent .. Par exemple

<p>@message</p>
<button onclck=@Send></button>
@code {
   private string message = "Don`t work";

   public void Send()
{
  message = "working"
}
}

J'espère que ça vous aide ...

1
Tintoretto