Flutter:父组件,向子组件传值,子组件向二级页面传值

父页面,传值给子组件,子组件把数据传递给二级页面

父页面

js 复制代码
final List _datas; // 通过接口请求到的数据

...
...

// 父页面中的子组件:SearchCell
body: Container(
	child:SearchCell(datas: _datas,);
)

子组件:SearchCell

js 复制代码
class SearchCell extends StatelessWidget {
  final List? datas;
  const SearchCell({this.datas});
}

// 触发某次点击事件,把datas传递过去
onTap: (){
  Navigator.of(context).push(
  	// 把数据传递给搜索页
    MaterialPageRoute(builder: (BuildContext context)=> SearchPage(datas: datas,))
  );
},

搜索页

js 复制代码
class SearchPage extends StatefulWidget {
  final List? datas;
  const SearchPage({this.datas});
  @override
  State<SearchPage> createState() => SearchPageState();
}
class SearchPageState extends State<SearchPage> {
	final List _modals = [];
	
	// 根据搜索的内容去检索上个页面传来的datas
	void _searchData(String text) {
		// 每次搜索先清空
		_modals.clear();
		if(text.length>0){
			for(int i = 0; i < widget.datas.length; i ++){
				String name = widget.datas[i].name;
				// contains 是否包含
				if(name.contains(text)){
					_modals.add(widget.datas[i]);
				}
			}
		}
	}
	....
	....
	children: [
		SearchBar(onChanged: (String texts){
			_searchData(text);
		},),
	]
}

// 搜索页内的小部件,头部的搜索框,
class SearchBar extends StatefulWidget {
  // 定义onChanged的回调方法
  final ValueChanged<String>? onChanged;
  const SearchBar({this.onChanged});
  @override
  State<SearchBar> createState() => SearchBarState();
}
class SearchBarState extends State<SearchBar> {
  // 监听输入框的变化
  void _onChange(String value){
    if(widget.onChanged != null){
      widget.onChanged!(value);
    }
  }
}

输入框变化后,检索datas的内容:

相关推荐
程序员老刘6 小时前
Flutter你看看人家RN
flutter·react native·ai编程
大龄秃头程序员12 小时前
【Flutter Bloc 从 0 到 1】用最少代码跑通 Bloc
flutter
m0_7381858213 小时前
Flutter 鸿蒙化实战:sqflite 适配 OpenHarmony,本地 SQLite 数据库
flutter·华为·harmonyos·鸿蒙
梦曦i14 小时前
uni-app、uni-app x 与 Flutter 深度对比:2026年跨平台开发框架选型指南
flutter·uni-app·uni-app x
恋猫de小郭15 小时前
Flitz ,一个把 Flutter 玩成热插拔 Preview 的有趣项目,不错的思路
android·前端·flutter
FungLeo15 小时前
成为全栈·Flutter App 篇·Refresh Token 旋转与并发 401:安全存储与会话代次
flutter·jwt·移动安全·身份认证·token刷新·成为全栈
m0_7381858215 小时前
Flutter 鸿蒙化实战:simple_circular_progress_bar 适配 OpenHarmony,环形进度条
flutter·华为·harmonyos·鸿蒙
大龄秃头程序员1 天前
Riverpod 深度解析:从响应式本质到最小可运行闭环
flutter
曹小强wxx1 天前
让 AI 写代码不“翻车”:用 Claude Code + Codex 给 Flutter 项目搭一套工程规范
flutter·ai编程·claude