TextArea в .razor не обновляется, хотя привязка к строковой переменной - PullRequest
0 голосов
/ 17 апреля 2020

Я создал страницу бритвы "logsubscriber.razor" в моем проекте. net core 3.1, на котором есть текстовое поле для отображения опубликованных сообщений из mqtt. Но текстовое поле не будет обновляться автоматически, хотя связанная строка «textAreaValue» изменяется. Я создаю событие mousedown для textarea. Только после того, как я нажму текстовую область, она обновится и покажет текст. Почему? Как текстовое поле может автоматически отображать подписанный текст?

мой код следующий:

@page "/logsubscriber"
<textarea @bind="@textAreaValue" style="width:100%" @onmousedown="eventArgs => { ha(); }" rows="20" />
@using uPLibrary.Networking.M2Mqtt
@using uPLibrary.Networking.M2Mqtt.Messages
@using System.Text
@code {
string textAreaValue = "";
private MqttClient client;
protected override async Task OnInitializedAsync()
{
    client = new MqttClient("localhost");
    client.Subscribe(new string[] { "DataTracking/ticketing" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });//"DataTracking/ticketing" is the topic
    client.MqttMsgPublishReceived += MqttMsgPublishReceived;
    client.Connect(Guid.NewGuid().ToString());
    await base.OnInitializedAsync().ConfigureAwait(true);
}

void MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
    string ReceivedMessage = e.Topic +":" +  Encoding.UTF8.GetString(e.Message);
    textAreaValue += ReceivedMessage + Environment.NewLine;
}

void ha()
{
} 

}

1 Ответ

0 голосов
/ 17 апреля 2020

Я сделал обходной путь: часть html теперь имеет значение

<div @onclick="eventArgs => { ha(); }" id="logdiv">
    <input type="checkbox" onclick="CallMouseClick()" />
     <textarea @bind="@textAreaValue" style="width:100%" rows="20" />
</div>

и добавляет javascript:

function CallMouseClick() 
{
     setInterval(function () { document.getElementById('logdiv').click(); }, 2500);
}

каждые 2,5 секунды, программно выбирается div для создания ссылка на текст sh.

Кто-нибудь знает идеальное решение, кроме обходного пути?

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