Flutter 如何从有状态小部件获取参数
如何从另一个有状态类访问以下有状态类中的_selectedCurrency参数Flutter 如何从有状态小部件获取参数,flutter,dart,statefulwidget,Flutter,Dart,Statefulwidget,如何从另一个有状态类访问以下有状态类中的_selectedCurrency参数 import 'dart:io' show Platform; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'coin_data.dart'; class OsPicker extends StatefulWidget { @override _OsPickerState
import 'dart:io' show Platform;
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'coin_data.dart';
class OsPicker extends StatefulWidget {
@override
_OsPickerState createState() => _OsPickerState();
}
class _OsPickerState extends State<OsPicker> {
String _selectedCurrency = currenciesList[0];
DropdownButton<String> androidDropDown() {
List<DropdownMenuItem<String>> dropdownItems = [];
for (String currency in currenciesList) {
var newItem = DropdownMenuItem(
child: Text(currency),
value: currency,
);
dropdownItems.add(newItem);
}
return DropdownButton<String>(
value: _selectedCurrency,
items: dropdownItems,
onChanged: (value) {
setState(() {
_selectedCurrency = value;
});
},
);
}
CupertinoPicker iOSPicker() {
List<Text> pickerItems = [];
for (String currency in currenciesList) {
var newItem = Text(currency);
pickerItems.add(newItem);
}
return CupertinoPicker(
backgroundColor: Colors.lightBlue,
itemExtent: 32.0,
onSelectedItemChanged: (selectedIndex) {
setState(() {
_selectedCurrency = currenciesList[selectedIndex];
print(_selectedCurrency);
});
},
children: pickerItems);
}
@override
Widget build(BuildContext context) {
return Platform.isIOS ? iOSPicker() : androidDropDown();
}
}
导入“dart:io”展示平台;
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“coin_data.dart”;
类OsPicker扩展StatefulWidget{
@凌驾
_OsPickerState createState()=>\u OsPickerState();
}
类_OsPickerState扩展状态{
字符串_selectedCurrency=currenceslist[0];
DropdownButton和androidDropDown(){
列表下拉项=[];
for(货币列表中的字符串货币){
var newItem=DropdownMenuItem(
子项:文本(货币),
价值:货币,
);
添加(newItem);
}
返回下拉按钮(
值:\ u选择的货币,
项目:下拉项目,
一旦更改:(值){
设置状态(){
_所选货币=价值;
});
},
);
}
CupertinoPicker iOSPicker(){
列表pickerItems=[];
for(货币列表中的字符串货币){
var newItem=文本(货币);
pickerItems.add(newItem);
}
回程铜杯切纸机(
背景颜色:颜色。浅蓝色,
itemExtent:32.0,
onSelectedItemChanged:(selectedIndex){
设置状态(){
_selectedCurrency=CurrencesList[selectedIndex];
打印(_选择的货币);
});
},
儿童:皮克瑞特姆);
}
@凌驾
小部件构建(构建上下文){
return Platform.isIOS?iOSPicker():androidDropDown();
}
}
以下内容来自coin_dart文件:
常数列表电流列表=[
“澳元”,
“BRL”,
“CAD”,
“人民币”,
“欧元”,
“英镑”,
“港币”,
“IDR”,
“ILS”,
“印度卢比”,
“日元”,
“MXN”,
“NOK”,
“新西兰元”,
“印尼国家电力公司”,
“罗恩”,
"擦",,
“瑞典克朗”,
“新加坡元”,
“美元”,
“扎尔”
];
常量列表加密列表=[
“BTC”,
“ETH”,
“LTC”,
]; 你不能,颤振中的数据只在下降。一种解决方法是创建一个全局文件来存储变量,或者使用类似的设计模式,允许您从应用程序中的任何位置访问数据 全球的示例
//global.dart
字符串选择货币;
//然后您可以按照以下操作访问它
将“./lib/global.dart”作为全局变量导入;
Globals.selectedCurrency=currenceslist[0];