Я использую
editContext для отслеживания изменений в форме, и я показываю диалог подтверждения с использованием
confirmasync () , если при навигации, которые используются в форме, введены в навигацию.
. />
Код: Выделить всё
public async Task GetConfirmation()
{
if (ParentForm != null && ParentForm.EditContext.IsModified())
{
return await dialogs.ConfirmAsync("You have unsaved changes. Do you want to leave?", "Confirm", "Leave", "Cancel");
}
return true;
}
В моем компоненте
onitializedAsync я называю
getUserData () , который загружает пользовательские данные. Но этот метод внутренне вызывает
getConfirmation () как часть какой -то логики. Поскольку
editcontext.ismodified () возвращает true во время инициализации (вероятно, из -за привязки), диалог отображается при загрузке страницы, что не требуется. образец инициализации страницы и то, как я называю этот метод из родительской формы. < /p>
Код: Выделить всё
private async Task GetUserData(int userId)
{
if (!await refNavigationConfirm.GetConfirmation())
{
//Some code here
}
}
ограничения:
- Эта логика разделяется на нескольких страницах, поэтому я не хочу размещать технические обходные пути. />
Как я могу предотвратить показать диалоговое окно подтверждения во время начальной нагрузки данных (например,
onInitializedAsync ), но все же запускает его правильно для фактических несарших изменений?
Подробнее здесь:
https://stackoverflow.com/questions/795 ... ync-in-bla