【问题标题】:flutter pass new argument from search field颤动从搜索字段传递新参数
【发布时间】:2022-11-19 19:29:07
【问题描述】:

我已将我的搜索页面分成多个小部件。

  1. 搜索应用栏
  2. 搜索输入(文本字段)
  3. SearchFeed(用于显示结果)
      String? query = null;
      @override
      void initState() {
        super.initState();
        GoogleAds().showInterstitialAd();
      }
    
      void searchQuery(String query) {
        if (this.query != query) {
          setState(() {
            this.query = query;
          });
        }
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: PreferredSize(
            preferredSize: Size.fromHeight(100),
            child: Column(
              children: [
                SizedBox(height: 50),
                SearchAppbar(
                  callBack: (query) {
                    searchQuery(query);
                  },
                ),
              ],
            ),
          ),
          body: query != null ? SearchFeed(query: query!) : Container(),
        );
      }
    }
    

    在我的搜索应用栏中(连续):

                SearchInput(searchController: searchController),
                TextButton(
                  onPressed: () {
                    widget.callBack(searchController.text);
                  },
                  child: const Text(
                    "search",
                    style: TextStyle(
                      color: Colors.black,
                      fontSize: 14,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
    

    搜索输入只是一个带有 TextEditingController 的文本字段。问题是如果用户搜索一个词,说“你好”我得到的结果是正确的。但是,如果用户使用退格键清除文本字段并写入 world,我需要显示新结果。 在 SearchFeed 的 initState 中,我正在记录结果但什么也没得到。 SearchFeed 应该调用 api。

    如何将新的搜索查询发送到搜索提要?

【问题讨论】:

  • 你也可以包括 searchQuery 吗?

标签: flutter dart


【解决方案1】:

= 创建一个名为“String searchText = '';”的新变量 = 然后在文本字段中。使用“onchange: (value) {}”,然后传递 callBack,它看起来像。 “回调:(val){打印(val);}。 这将在不按任何按钮的情况下实时打印文本字段中的任何文本。 然后你searchText = val在回调中。现在您有一个包含文本字段文本的变量,而不是使用控制器。希望这可以帮助 ( :

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多