如何从父窗口小部件更改一个子窗口小部件的状态,其中子窗口小部件在单独的文件中是单独的 class?

How to change state of one child widget from parent widget where the child is a separate class in a separate file?

如何通过单击 RaisedButton 将框的颜色从蓝色更改为绿色?我正在使用 Flutter 网页版。

class _MyAppState extends State<MyApp> {
  Color colorOfBox = Colors.blue;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "App",
      home: Scaffold(
        body: Container(
          padding: EdgeInsets.all(50),
          child: Center(
            child: Column(
              children: <Widget>[
                Text("This blue has to change to green."),    
                Box(colorOfBox),
                RaisedButton(
                  color: Colors.red,
                  onPressed: () {
                    setState(() {
                      colorOfBox = Colors.green;

                    });
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
class Box extends StatefulWidget {
  Color c;
  Box(this.c, {Key key}) : super(key: key);

  @override
  _BoxState createState() => _BoxState(c);
}

class _BoxState extends State<Box> {
  Color c;
  _BoxState(this.c);

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 40,
      height: 40,
      color: c,
    );
  }
}

_BoxState

中删除 Color c
class Box extends StatefulWidget {
  Color c;
  Box(this.c, {Key key}) : super(key: key);

  @override
  _BoxState createState() => _BoxState();
}

class _BoxState extends State<Box> {

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 40,
      height: 40,
      color: widget.c,
    );
  }
}