Flutter - 如何在按钮点击时刷新小部件?
Flutter - How to refresh a Widget on button Click?
我正在制作一个可以绘制加密货币图表的应用程序。我有一个这样的文件,它在其中呈现 btc
/24h
的图表。我正在使用 chart_sparkline
包来绘制图表。
我有以下代码,但它在单击按钮时不起作用,我该如何解决这个问题?
import 'package:flutter/material.dart';
import 'package:tracker/renderchart.dart';
class Portfolio extends StatefulWidget {
@override
_PortfolioState createState() => _PortfolioState();
}
class _PortfolioState extends State<Portfolio> {
Widget portfolioChart = RenderPortfolioChart(coin: "bitcoin", days: 1);
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
portfolioChart,
const Padding(padding: EdgeInsets.only(top: 10.0)),
const Text("Hello, there!", style: TextStyle(color: Colors.white)),
const Padding(padding: EdgeInsets.only(top: 10.0)),
ElevatedButton(
onPressed: (){
print("updating chart");
setState(() {
portfolioChart = RenderPortfolioChart(coin: "ethereum", days: 1);
});
},
child: Text("ETH"),
)
]
),
);
}
}
基本上,elevatedButton 应该更新图表,但它在我的情况下不起作用,如何解决这个问题?
我修复了这个问题,我正在将 Portfolio
的构造函数参数传递给 _PortfolioState
,这不会在下次更新值。我没有将这些值传递给 _PortfolioState
,而是使用 widget.coin
和 widget.days
从 Portfolio
class.
中提取数据
感谢这个 Whosebug link:
我正在制作一个可以绘制加密货币图表的应用程序。我有一个这样的文件,它在其中呈现 btc
/24h
的图表。我正在使用 chart_sparkline
包来绘制图表。
我有以下代码,但它在单击按钮时不起作用,我该如何解决这个问题?
import 'package:flutter/material.dart';
import 'package:tracker/renderchart.dart';
class Portfolio extends StatefulWidget {
@override
_PortfolioState createState() => _PortfolioState();
}
class _PortfolioState extends State<Portfolio> {
Widget portfolioChart = RenderPortfolioChart(coin: "bitcoin", days: 1);
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
portfolioChart,
const Padding(padding: EdgeInsets.only(top: 10.0)),
const Text("Hello, there!", style: TextStyle(color: Colors.white)),
const Padding(padding: EdgeInsets.only(top: 10.0)),
ElevatedButton(
onPressed: (){
print("updating chart");
setState(() {
portfolioChart = RenderPortfolioChart(coin: "ethereum", days: 1);
});
},
child: Text("ETH"),
)
]
),
);
}
}
基本上,elevatedButton 应该更新图表,但它在我的情况下不起作用,如何解决这个问题?
我修复了这个问题,我正在将 Portfolio
的构造函数参数传递给 _PortfolioState
,这不会在下次更新值。我没有将这些值传递给 _PortfolioState
,而是使用 widget.coin
和 widget.days
从 Portfolio
class.
感谢这个 Whosebug link: