首页 > 解决方案 > Flutter 将数据传递给子小部件

问题描述

使用的小部件越多,从父到子传递数据可能会很混乱,从子到子再​​到子。有没有办法使用第一个父亲的数据而不继续传递它,提供程序用于在同一级别的小部件之间,屏幕之间传递数据,但我的意思是一个屏幕有很多孩子的情况。

import 'package:flutter/material.dart';

class FirstFather extends StatelessWidget {
  const FirstFather({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Child(
      prop: "exmaple",
    );
  }
}

class Child extends StatelessWidget {
  final String prop;
  const Child({Key key, this.prop}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Grandson(
        prop: prop,
      ),
    );
  }
}

class Grandson extends StatelessWidget {
  final String prop;
  const Grandson({Key key, this.prop}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text(prop),
    );
  }
}

标签: flutter

解决方案


使用 InheritedWidget:

https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html

当您将它放在 Widget 树的顶部时,所有的孩子都可以访问数据。


推荐阅读