Así que tengo un componente blazor que ejecuta un método javascript dentro de su método OnInitializedAsync. Pero de alguna manera devuelve nulo, aunque la función javascript en sí misma devuelve algo seguro que verifiqué usando la depuración. Registré el resultado de la función javascript y puse console.log antes y después del retorno y detrás no se mostró, lo que significa que devolvió algo. Lo que se supone que debe devolver ya lo depuré usando console.log y es el resultado correcto. Este es el código de mi componente blazor:
@using System.Diagnostics @inject IJSRuntime _jsRuntime <div class="summoner-icon" style='background-image: url("@IconPath");'> <div class="summoner-level-circle" style="background-color: @_mainColor;"> <a>@Level</a> </div> </div> @code { [Parameter] public string IconPath { get; set; } [Parameter] public long Level { get; set; } private string _mainColor; protected override async Task OnInitializedAsync() { _mainColor = await _jsRuntime.InvokeAsync<string> ("getProfileIconMainColor", IconPath); } }Además de eso, aquí puedes ver la función javascript:
window.getProfileIconMainColor = function (url) { const image = document.createElement('img'); image.src = url; image.crossOrigin = "anonymous"; image.onload = function () { const colorThief = new ColorThief(); const mainColor = colorThief.getColor(image); return rgbToHex(mainColor[0], mainColor[1], mainColor[2]); /*return "rgb(" + colorThief.getColor(image).join(",") + ")";*/ } } const rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => { const hex = x.toString(16) return hex.length === 1 ? '0' + hex : hex }).join('');