Модель всплывающего окна работает, но не в моде Pop up в Blazor - PullRequest
0 голосов
/ 08 января 2020

Я использую Blazor и хотел получить всплывающую функциональность для уведомлений или информации. Я использовал это post , чтобы сделать это, и все работает нормально, единственное, что всплывающее окно показывает на странице без щелчка, и окно не появляется, как я ожидал. Я также попытался с проектом, который доступен на Github , и он работает нормально, единственное, что если я попытался реализовать его, всплывающее окно появляется на каждой странице, как я добавил модель на Mainlayout. компонент бритвы без нажатия на кнопку.

Снимок экрана всплывающего окна, которое не появляется, все еще в левом углу каждой страницы

Пожалуйста, помогите мне, если я пропал что-то.

КОМПОНЕНТНЫЙ КОД БРИТВЫ

@page "/"
@inject SessionState  state
@inject IModalService Modal
<div id="Login_div" align="center">
    <button class="btn btn-primary" @onclick="ShowModal">Login</button>
</div>

@code {

private void ShowModal()
{
    var parameters = new ModalParameters();
    parameters.Add("FormId", 11);

    Modal.OnClose += ModalClosed;
    Modal.Show<YesNoPrompt>("Sign Up Form", parameters);
}

void ModalClosed(ModalResult modalResult)
{
    Console.WriteLine("Modal has closed");

    if (modalResult.Cancelled)
    {
        Console.WriteLine("Modal was Cancelled");
    }
    else
    {
        Console.WriteLine(modalResult.Data.ToString());
    }

    Modal.OnClose -= ModalClosed;
}

Обратите внимание, @inject IModalService Modal я использую то, что я упоминал в моем пункте выше с post или github, так как здесь невозможно показать полный код.

1 Ответ

0 голосов
/ 09 января 2020

Одна небольшая деталь, которую я могу найти, это то, что вы подписываетесь на события и отписываетесь от них без реализации интерфейса IDisposable. Это может привести к утечке памяти и некоторым трудностям в поиске ошибок.

Как переход со страницы без вызова метода ModalClosed. Небольшой образец

@using System
@implements IDisposable

...

@code {
    public void Dispose()
    {
        ...
    }
}

Ссылка для официального do c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...