首页 > 解决方案 > 如何从 blazor 中的同级组件访问函数?

问题描述

我有两个不同的组件,一个没有嵌套在另一个中,它们是分开的,但会在相同的布局中同时看到。

组件 1

@code {
    public void Tester()
    {
        Console.WriteLine("worked");
    }
}

组件 2

@code {
    Component1 c1 = new Component1();

     c1.Tester();
}

组件 2 坚持认为c1.Tester()不存在。

有没有办法解决这个问题,以便我可以访问组件 1 中的 Tester 函数?

标签: blazor

解决方案


您应该使用@ref获取Component1方法并将其作为参数传递给Component2

<Component1 @ref="Component1Ref" />
<Component2 Tester="@Tester" />

@code {
    Component1 Component1Ref;

    void Tester()
    {
        Component1Ref.Tester();
    }
}

这是一个工作示例


推荐阅读