【发布时间】:2020-09-30 02:49:58
【问题描述】:
我是 Blazor 的新手。我已经隐藏了具有特定值绑定发送到父组件的输入。我继续使用this tutorial
子组件是(名称是 MyControl):
<div>
@foreach (var result in this.Results)
{
if (result.IsFinal)
{
@(Text= result.Items[0].Transcript)
<input type="hidden" @oninput="OnTextChanged" value="Text" />
}
else
{
<img class="embed-responsive" style="height: 50px; width: auto;" src="https://gifdownload.net/wp-content/uploads/2019/01/blue-loader-gif-3.gif"/>
}
}
</div>
@code
{
[Parameter]
public string Text { get; set; }
[Parameter]
public EventCallback<string> TextChanged { get; set; }
private Task OnTextChanged(ChangeEventArgs e)
{
Text = e.Value.ToString();
return TextChanged.InvokeAsync(Text);
}
}
父组件是:
@inherits LayoutComponentBase
<div class="sidebar">
<MyControl @bind-Text="text" />
<NavMenu />
</div>
<div class="main">
<div class="top-row px-4">
<a href="http://blazor.net" target="_blank" class="ml-md-auto">About</a>
</div>
<div class="content px-4">
<CascadingValue Value="text">
@Body
</CascadingValue>
</div>
</div>
@code{
private string text;
}
以及在索引组件中的用法:
@page "/"
@if (text != null)
{
<p>
@text
</p>
}
@code
{
[CascadingParameter]
public string text { get; set; }
}
注意:我不使用键盘输入文字。从@(Text= result.Items[0].Transcript) 输入填充。
完全我想从孩子提供文本并发送给父母,但我不显示文本(为此,我使用了隐藏输入),然后通过 CascadingValue 参数发送到所有组件,但不工作且没有错误,我不知道为什么。
【问题讨论】:
标签: asp.net-core blazor blazor-client-side