Blazor为什么儿童剃须刀组件不起作用?

问题描述

我正在尝试将子组件包含到父组件中

但是子组件不起作用

下面是代码

==================== parent component razor ====================
<InfoDialog @ref="infoDialog"></InfoDialog>
==================== parent component code behind ====================
public InfoDialog infoDialog { get; set; }

public async Task AddToDB()
{
    infoDialog.Show("success","request complete!");
}
==================== child component razor ====================
<MatDialog @bind-IsOpen="@IsShow">
    <MatDialogTitle>@Title</MatDialogTitle>
    <MatDialogContent>
        <p>@Description</p>
    </MatDialogContent>
    <MatDialogActions>
        <MatButton OnClick="@Close">OK</MatButton>
    </MatDialogActions>
</MatDialog>
==================== child component code behind ====================
public partial class InfoDialog
{
    public bool IsShow { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }

    public void Show(string _title,string _Description)
    {
        IsShow = true;
        Title = _title;
        Description = _Description;
    }
    public void Close()
    {
        IsShow = false;
    }
}

当我调用'AddToDB'函数时,我调用了子组件的show函数,但是未渲染子组件。谁能帮我吗?

对不起,我的英语不好

解决方法

尝试在子组件方法中调用StateHasChanged()

public void Show(string _title,string _Description)
{
    IsShow = true;
    Title = _title;
    Description = _Description;
    StateHasChanged();
}

public void Close()
{
    IsShow = false;
    StateHasChanged();
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...