[英]Passing variable value from state to another widget
我正在為一個簡單的案例而苦苦掙扎,如果有人可以在這里提供幫助,那就太好了。
假設我有一些stateful widget
。 在其 state 中,我定義了一個變量(可能是任何類型),該變量稍后通過setState()
方法進行更改,在該方法中,我根據某些特定條件動態分配其值。 直到此時為止,一切都在一個 class 內進行。
如果我想從另一個 class (完全不同的page
)訪問這個變量的值,如果它的值發生變化,重建它怎么辦? 您能否也給我一些例子?
提前致謝!
這正是 State MANAGEMENT 存在的原因。 通過您的應用程序管理您的 state。 有許多不同的選項可供參考: https://flutter.dev/docs/development/data-and-backend/state-mgmt/options
在這種情況下,您可以使用provider
package。 在yaml
文件中添加, provider: ^4.3.2+4
class HomeApp extends StatefulWidget {
@override
_HomeAppState createState() => _HomeAppState();
}
class _HomeAppState extends State<HomeApp> {
Counter _counterProvider;
@override
void initState() {
super.initState();
_counterProvider = Provider.of(context, listen: false);
}
void updateCounter() {
_counterProvider.setCount();
}
@override
Widget build(BuildContext context) {
Counter _counterProvider = Provider.of(context);
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
child: Text(
_counterProvider.count.toString(),
style: TextStyle(
fontSize: 22,
),
),
),
RaisedButton(
onPressed: updateCounter,
child: Text('Click'),
),
],
),
),
);
}
}
// class for storing data(Counter.dart)
import 'package:flutter/material.dart';
class Counter extends ChangeNotifier { // create a common file for data
int _count = 0;
int get count => _count;
void setCount() {
_count++;
notifyListeners();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.