Вызов функции из одной сборки в другую - PullRequest
0 голосов
/ 04 мая 2020

В моем main page.dart у меня есть этот код. Когда есть текст, я хотел бы вызвать функцию фильтра, которая объявлена ​​в функции сборки страницы B. Как мне этого добиться?

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: _appBarTitle,
          actions: <Widget>[
            IconButton(
              onPressed: () {
                setState(() {
                                 ....
                      decoration: new InputDecoration(
                      onChanged: (value) {
                         // call filter function in pageB
                      },
                    );
                      ....
               }

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Есть несколько способов сделать это.

Как уже говорилось в чате, PageB().filterSearch(value) - это один из способов сделать это.

Другой способ - импортировать файл d страницы b и получить доступ к функции. Что-то вроде:

PageA.dart:

import "pageb.dart"



decoration: new InputDecoration(
                      onChanged: (value) {
                         // call filter function in pageB
                         filterSearch(value);
                      },
0 голосов
/ 04 мая 2020

Этого можно добиться, проверив приведенный ниже код, создав Object из age B в Page A и вызвав метод фильтра

. Необходимо выполнить два шага:

  1. Создание экземпляра класса PageB
  2. Вызов функции `` `filter () для созданного экземпляра PageB

Проверьте код ниже, это отлично работает:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: _appBarTitle,
          actions: <Widget>[
            IconButton(
              onPressed: () {
                setState(() {
                                 ....
                      decoration: new InputDecoration(
                      onChanged: (value) {
                         // call filter function in pageB
                         //create an object of Page B
                         PageB _pageb = PageB();
                         // call the filter function in PageB using the object above
                         _pageb.filter();
                      },
                    );
                      ....
               }

Надеюсь, это поможет вам.

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