Blazor привязывает входное значение к oninput, не работающему с onkeypress - PullRequest
0 голосов
/ 26 марта 2020

Я использую Blazor для поиска. Когда я нажимаю клавишу ввода, она проверяет, является ли она клавишей ввода, и запускает ли она поиск. Однако, похоже, что значение связанной переменной (keywordValue) не обновляется, пока я не нажму два раза подряд enter. В первый раз, когда я нажимаю его, значение не обновляется.

<h1>Blogs</h1>
<fieldset>
    <label>Keyword Search</label>
    <input type="text" @bind="keywordValue" @bind:event="oninput" @onkeypress="KeywordEnterPressed"/>
    <button type="submit" @onclick="SearchBlogs">Search</button>
</fieldset>
private string keywordValue { get; set; }
protected async void KeywordEnterPressed(KeyboardEventArgs eventArgs)
    {
        if (eventArgs.Key == "Enter")
        {
            await SearchBlogs();
        }
    }

Например: если я ввожу «test» в поле ввода и нажимаю ввод, он запускает searchblogs () со значением "". Когда я снова нажимаю Enter, он запускает searchblogs () со значением «test», как и должно.

1 Ответ

1 голос
/ 26 марта 2020

Вы должны использовать Task вместо void

Запись: protected async Task KeywordEnterPressed вместо protected async void KeywordEnterPressed

Кстати, тип элемента button должен быть «button» вместо «submit»

Сделайте это: <button type="button" @onclick="SearchBlogs"> вместо <button type="submit" @onclick="SearchBlogs">

Надеюсь, это поможет ...

...