У меня есть одно представление поиска в основном классе виджетов statefull и одно представление списка в другом классе виджетов. Теперь, когда пользователь ищет что-то, я хочу передать поисковый текст в виджет списка, чтобы вызвать api.
, как я могу это сделать?
Когда первый раз открыть список, это будет работать, но когда я что-то ищу тогда как я могу позвонить снова?
Мой фрагмент кода ниже.
Stack(
children: <Widget>[
Flex(
direction: Axis.vertical,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Divider(
color: ColorsApp.gray,
height: 1,
),
searchView(),
Expanded(
child: OrderList(
isSearch: isSearch,
textSearch: textSearch,
onCallBack: widget.onCalBack,
),
),
],
),
],
);
теперь при изменении текста поиска
void _onTextChange(String value) {
print(tag + "....value........" + value);
if (value == "") {
_writtingStatusController.add(true);
_customSearchViewController.add(false);
setState(() {
textSearch = "";
isSearch = true;
});
} else {
_writtingStatusController.add(false);
_customSearchViewController.add(true);
setState(() {
textSearch = value;
isSearch = true;
});
}
}
Список заказов, класс
class OrderList extends StatefulWidget {
final String textSearch;
final bool isSearch;
final Function onCallBack;
const OrderList({
Key key,
this.textSearch,
this.onCallBack,
this.isSearch,
}) : super(key: key);
@override
_OrderListState createState() => _OrderListState();
}