Как получить доступ к функции из родственного компонента в Blazor? - PullRequest
2 голосов
/ 23 апреля 2020

У меня есть два разных компонента, один не вложен в другой, они разделены, но будут видны одновременно в одном и том же макете.

Компонент 1

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

Компонент 2

@code {
    Component1 c1 = new Component1();

     c1.Tester();
}

Компонент 2 настаивает на том, что c1.Tester () не существует.

Есть ли способ обойти это, чтобы я мог получить доступ к функции тестера в компоненте 1?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

Вы должны использовать @ref, чтобы получить Component1 метод и передать его в качестве параметра Component2

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

@code {
    Component1 Component1Ref;

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

Вот рабочий пример .

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

Вызов c1.Tester () должен, конечно, быть внутри метода:

@code {
    Component1 c1 = new Component1();

  void SomeMethod()
  {
     c1.Tester();   // this should work
  }
}

Если это не так, тогда выведите точный код и буквальное сообщение об ошибке.

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