Flutter: redux简单使用
2024-09-06 15:16:12
import 'package:flutter/material.dart';
import 'package:redux/redux.dart';
import 'package:flutter_redux/flutter_redux.dart';
// 一个简单的动作:增量
enum Actions { Increment }
void main() {
// reducer + initState = store
final store = Store<int>((int state, dynamic action) {
if (action == Actions.Increment) {
return state + 1;
}
return state;
}, initialState: 0);
runApp(new MyApp(store: store));
}
class MyApp extends StatelessWidget {
MyApp({Key key, this.store}) : super(key: key);
final Store<int> store;
@override
Widget build(BuildContext context) {
return StoreProvider<int>(
// 将给定的Redux Store传递给请求它的所有后代
store: store,
child: MaterialApp(
home: MyHome(),
),
);
}
}
class MyHome extends StatefulWidget {
@override
_MyHomeState createState() => _MyHomeState();
}
class _MyHomeState extends State<MyHome> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hello'),
),
floatingActionButton: StoreConnector<int, VoidCallback>(
converter: (store) => () => store.dispatch(Actions.Increment),
builder: (context, cb) => FloatingActionButton(
onPressed: cb,
child: Icon(Icons.add),
),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
StoreConnector<int, String>(
converter: (store) => store.state.toString(),
builder: (context, count) {
return Center(child: Text('$count'));
}),
],
),
);
}
}
最新文章
- x86开启 HUGEPAGES
- C# exe dll防止反编译-- dotNET_Reactor
- Win10/UWP新特性系列—电池报告
- windows log 打印语句
- Lumia刷机Win10 Mobile 10.0.10166惊魂记
- HTML 5 参考手册
- 经典sql(3)
- 经典算法面试题目-翻转一个C风格的字符串(1.2)
- JAVA并发七(多线程环境中安全使用集合API)
- jQuery的ajax jsonp跨域请求
- esxi5.5 安装,虚拟机复制
- IOS--工作总结--post上传文件(以流的方式上传)
- NYOJ 14 场地安排(它可以被视为一个经典问题)
- ProxySQL的相关维护说明
- 木棍分割[HAOI2008]
- 移动端吸顶(iOS与安卓)
- 【一天一道LeetCode】#11Container With Most Water
- centos7下报错: import requests ImportError: No module named requests
- mysql编译好的简单安装
- mybatis配置文件配错
热门文章
- pycharm设置头文件模板(for mac)
- 深入理解java虚拟机,GC参考手册
- 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点
- linux系统rpm和yum软件包管理
- php文件下载的实现(header)
- Java反射应用--2
- 国产App为什么如此“臃肿”?!
- 为何 JVM TLAB 在线程退还给堆的时候需要填充 dummy object
- centos7.2安装图形化界面 &;&; 在Linux上更改当前默认界面
- Codeforces Round #672 (Div. 2) D. Rescue Nibel! (思维,组合数)