Flutter: redux简单使用
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'));
              }),
        ],
      ),
    );
  }
}
Flutter: redux简单使用的更多相关文章
- flutter最简单轻量便捷的路由管理方案NavRouter
		大家好,我是CrazyQ1,今天给大家推荐一个路由管理方案,用的非常不错的,叫nav_router. 项目地址是:https://github.com/fluttercandies/nav_route ... 
- Jaguar_websocket结合Flutter搭建简单聊天室
		1.定义消息 在开始建立webSocket之前,我们需要定义消息,如:发送人,发送时间,发送人id等.. import 'dart:convert'; class ChatMessageData { ... 
- Flutter 实现简单搜索功能
		先建立一个主文件,继承StatelessWidget,然后在home属性中加入SearchBarDemo,这是一个自定义的Widget,主要代码都在这个文件中. import 'package:flu ... 
- redux简单使用
		在前面的随便中有简单的使用过redux和react-redux,但是感觉写在一起,总是理不清楚,后面看了技术胖老师关于redux的视频后,感觉自己又有了新的理解,在这里简单记录一下. 项目准备 首先安 ... 
- flutter文本简单实现
		import 'package:flutter/material.dart'; import 'package:flustars/flustars.dart'; import 'package:fl_ ... 
- 使用redux简单的实现加法运算(简单的状态改变)
		描述该做啥?(action)!具体怎么做(reducer)!统一规划(store:包含reducer+所有的state) 上代码:index.ios.js import React, { Compon ... 
- Flutter: 设置简单的启动屏
		更多代码参考 有短暂的白屏时间 import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter ... 
- 基于 Redux + Redux Persist 进行状态管理的 Flutter 应用示例
		好久没在 SegmentFault 写东西,唉,也不知道 是忙还是懒,以后有时间 再慢慢写起来吧,最近开始学点新东西,有的写了,个人博客跟这里同步. 一直都在自己的 React Native 应用中使 ... 
- flutter Provide 状态管理篇
		Provide是Google官方推出的状态管理模式.官方地址为: https://github.com/google/flutter-provide 现在Flutter的状态管理方案很多,redux. ... 
随机推荐
- 基于navicat的数据库导入导出
			1.右键当前数据库,选择转储SQL文件 选择导出sql的存放路径 2.新建统一命名的数据库,右键运行SQL文件 3,.选择要导入的SQL文件后如图 
- servelet 实现Post接口访问
			先上代码: package com.jovtec.galaxy.mailbox; import java.io.BufferedReader; import java.io.IOException; ... 
- Linux系统安装时分区的选择(转)
			原文地址:http://www.cnblogs.com/gylei/archive/2011/12/04/2275987.html 前言: 以前初识Linux时,对Linux系统安装时分区的选择,一点 ... 
- Java开发中POJO和JSON互转时如何忽略隐藏字段
			1. 前言 在Java开发中有时候某些敏感信息我们需要屏蔽掉,不能被消费这些数据的客户端知道.通常情况下我们会将其设置为null或者空字符 "",其实还有其它办法,如果你使用了Ja ... 
- 从NMEA0183到GNSS定位数据获取(二)软件篇
			作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述 GPS我们都知道,一种用来全球定位的系统,后来俄罗斯推出了格洛纳斯定位系统,中国推出了北斗定位,欧盟有 ... 
- C#遇见C++的江湖   不行!得不到就干掉
			C# VS C++ C#代码遇见了非托管dll如何处理 问题:托管与非托管,兼容? 方法一:DllImport 托管调试助手 "PInvokeStackImbalance" Me ... 
- hdu 3974 Assign the task(dfs序上线段树)
			Problem Description There is a company that has N employees(numbered from 1 to N),every employee in ... 
- 【洛谷 p3372】模板-线段树 1(数据结构--线段树)
			题目:已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x:2.求出某区间每一个数的和. 解法:如题,模版题.需要加上 lazy 标记,也就是我的 upd.lazy 标记的思路就是对一个结 ... 
- 【noi 2.6_2988】计算字符串距离(DP)
			题意: 给两个字符串,可以增.删.改,问使这两个串变为相同的最小操作数. 解法:(下面2种的代码主要区别在初始化和,而状态转移方程大家可挑自己更容易理解的方法打) 1.f[i][j]表示a串前i个和b ... 
- python的threading的使用(join方法,多线程,锁threading.Lock和threading.Condition
			一.开启多线程方法一 import threading,time def write1(): for i in range(1,5): print('1') time.sleep(1) def wri ... 
