Skip to content

Commit 6c06de1

Browse files
committed
feat:增加执行方法
refact:合并model
1 parent b81b35c commit 6c06de1

File tree

4 files changed

+59
-170
lines changed

4 files changed

+59
-170
lines changed

lib/store/index.dart

Lines changed: 59 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,83 @@
1+
import 'package:flutter/material.dart' show StreamBuilder;
12
import 'package:provide/provide.dart'
2-
show Provider, Providers, ProviderNode, Provide;
3-
// import 'package:flutter/material.dart' show StreamBuilder;
3+
show
4+
Provider,
5+
Provide,
6+
ProviderNode,
7+
Providers,
8+
ProvideMulti,
9+
ProviderScope;
10+
export 'package:provide/provide.dart';
411
import './models/config_state_model.dart' show ConfigModel;
512
import './models/user_model.dart' show UserModel;
613
import './models/author_state_model.dart' show AuthorModel;
714
export './models/config_state_model.dart' show ConfigModel;
815
export './models/user_model.dart' show UserModel;
916
export './models/author_state_model.dart' show AuthorModel;
10-
export 'package:provide/provide.dart'
11-
show Provider, Providers, ProviderNode, Provide;
1217

1318
class Store {
14-
static init({child}) {
19+
static init({model, child, dispose = true}) {
1520
final providers = Providers()
1621
..provide(Provider.value(ConfigModel()))
1722
..provide(Provider.value(UserModel()))
1823
..provide(Provider.value(AuthorModel()));
19-
print('store init');
20-
return ProviderNode(providers: providers, child: child);
24+
25+
return ProviderNode(
26+
child: child,
27+
providers: providers,
28+
dispose: dispose,
29+
);
2130
}
31+
32+
/**
33+
* 获取
34+
*/
2235
static valueNotContext<T>(value) {
2336
return Providers().provideValue<T>(value);
2437
}
25-
static value<T>(context) {
26-
return Provide.value<T>(context);
38+
39+
/**
40+
* 根据 Context 获取
41+
*/
42+
static value<T>(context, {scope}) {
43+
return Provide.value<T>(context, scope: scope);
44+
}
45+
46+
/**
47+
* 监听
48+
*/
49+
static connect<T>({builder, child, scope}) {
50+
return Provide<T>(
51+
builder: builder,
52+
child: child,
53+
scope: scope,
54+
);
2755
}
2856

29-
static connect<T>({builder}) {
30-
return Provide<T>(builder: builder);
57+
/**
58+
* 通过流的方式 监听
59+
*/
60+
static stream<T>({builder, model, context}) {
61+
return StreamBuilder<T>(
62+
initialData: model,
63+
stream: Provide.stream<T>(context),
64+
builder: builder);
3165
}
3266

67+
/**
68+
* 链接多个类型
69+
*/
70+
static multi(
71+
{builder,
72+
child,
73+
List<Type> requestedValues,
74+
Map<ProviderScope, List<Type>> requestedScopedValues}) {
75+
return ProvideMulti(
76+
builder: builder,
77+
child: child,
78+
requestedValues: requestedValues,
79+
requestedScopedValues: requestedScopedValues);
80+
}
3381
// static connect({context, builder, child}) {
3482
// final currentCounter = Provide.value<Counter>(context);
3583
// print('currentCounter ${currentCounter} ');

lib/store/provide.dart

Lines changed: 0 additions & 76 deletions
This file was deleted.

lib/store/provide_model/config_model.dart

Lines changed: 0 additions & 66 deletions
This file was deleted.

lib/store/provide_model/user_model.dart

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)