Flutter Provider使用

1.创建状态

class Counter with ChangeNotifier{
  int count = 0;
  void add(){
    count += 1;
    notifierListenters();
  }
}

2.提供状态

runAPP(){
  ChangeNotifierProvider(
    create:(context) => Counter()
    child:MyApp()
  )
}

3.监听状态

Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
          //绑定监听
            Consumer<Counter>(
              builder: (context, value, child) {
                return Text('${value.count}');
              },
            ),
            const Text(
              'You have pushed the button this many times:',
            ),
      //这样监听也行
            Text(
              '${Provider.of<Counter>(context, listen: true).count}',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }

4.触发

 void _incrementCounter() {
    Provider.of<Counter>(context, listen: false).increment();
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容