위젯간 데이터 전달 (생성자)
StatelessWidget위젯은 생성자에서 데이터를 받을때 $name 이렇게 받고,
StatefulWidget위젯은 ${widget.name}으로 받음.
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.deepOrange, // 전체 메인컬러를 Default값으로 설정
),
home: const MyHomePage(
name: 'Coco',
title: 'Title', // 생성자에 값을 전달
),
);
}
}
class MyHomePage extends StatelessWidget {
// 2. 이 값을 생성자에서 입력 받을 수 있게 this.name 등을 작성해줌
const MyHomePage({Key? key, required this.name, required this.title})
: super(key: key);
// 1. 위젯간의 데이터를 전달할때는 다음과 같이 파라미터, 필드들을 final형태로 구성하고
final title;
final name;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Hello $title !',
style: Theme.of(context).textTheme.headline4,
),
Text(
'Hello $name World ~',
),
],
),
),
);
}
}