Blazor javascript метод не может быть вызван - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь вызвать функцию javascript из моего компонента Blazor с помощью JSinterop, но всегда получаю эту ошибку:

«Uncaught SyntaxError: Неожиданный конец ввода».

Плюс функция javascript вызывается автоматически, когда страница полностью загружена, что не является требуемым поведением, потому что я хочу вызвать функцию при нажатии кнопки.

@page "/jsInterop"
@inject IJSRuntime jsRuntime

<h3>JSinterop</h3>

<button type="button" class="btn btn-primary" 
 onclick="@setLocalStorage()">
    Trigger JavaScript Prompt
</button>

@code{

public object setLocalStorage()
{
    return jsRuntime.InvokeAsync<object>("interop.setItem", "username", 
"Aymen");
}
}


window.interop = {

    setItem: function (name, value) {

        window.localStorage[name] = value;
        return value;
    },

};

1 Ответ

2 голосов
/ 16 июня 2019

У вас есть синтаксическая ошибка, когда у вас есть событие onclick

onclick="@setLocalStorage()"

Должно быть

@onclick=“@setLocalStorage”

Все события Blazor теперь должны начинаться с префикса @.

Вам также нужно изменить подпись вашего обработчика кликов, и вы должны ждать вызова.

public async Task setLocalStorage()
{
    await jsRuntime.InvokeAsync<object>("interop.setItem", "username", 
"Aymen");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...