#c# #blazor #blazor-client-side
#c# #blazor #blazor-на стороне клиента
Вопрос:
Этот небольшой пример иллюстрирует это. Вы нажимаете кнопку, страница изменяет как текстовую область, так и ввод, но если вы вручную что-то измените в текстовой области, она перестанет обновлять свое содержимое при повторном нажатии. Как вы решаете эту проблему, чтобы она всегда менялась из кода?
@page "/TextAreaTest"
<h3>TextArea Test</h3>
<textarea>@textContent</textarea>
<br />
<input type="text" value="@textContent" />
<br /><br />
<input type="button" value="Change It" @onclick="ChangeIt" />
@code {
string textContent = "now...";
void ChangeIt() =>
textContent = $"{DateTime.Now:HH:mm:ss.fff}";
}
Комментарии:
1. Я не могу воспроизвести ошибку. Ваш пример работает нормально. Не могли бы вы попробовать добавить
await InvokeAsync(StateHasChanged);
к своему методу и проверить, работает ли он? Итак, метод выглядит такasync Task ChangeIt() { textContent = $"{DateTime.Now:HH:mm:ss.fff}"; await InvokeAsync(StateHasChanged); }
Ответ №1:
Используйте значение или @bind
<textarea value="@textContent"></textarea>
// or
<textarea @bind="textContent"></textarea>