Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

源码的注释有点少 太简单 关于Connector和Adapter的特有概念说明文档太少 例子中很少有注释 #41

Closed
lsp10 opened this issue Mar 7, 2019 · 15 comments

Comments

@lsp10
Copy link

lsp10 commented Mar 7, 2019

源码的注释有点少 太简单 关于Connector和Adapter的特有概念说明文档太少 例子中很少有注释

@linisme
Copy link

linisme commented Mar 7, 2019

@CharlesZqikai 在connector中重定义了+运算符:

class ConnOp<S, P> implements Connector<S, P> {
  final P Function(S) _getter;
  final void Function(S, P) _setter;

  ConnOp({P Function(S) get, void Function(S, P) set})
      : _getter = get,
        _setter = set;

  @override
  P get(S state) => _getter(state);
  @override
  void set(S state, P substate) => _setter(state, substate);

  Dependent<S> operator +(Logic<P> logic) => createDependent<S, P>(this, logic); //这里
}

@zjuwjf
Copy link
Contributor

zjuwjf commented Mar 7, 2019

文档优化部分,目前是我们高优先级的任务。如果有更加具体的问题的话,会更加容易回答。

@lsp10
Copy link
Author

lsp10 commented Mar 8, 2019

@zjuwjf 例子看懂了 关于Connector和Adapter还差点意思 尤其是Adapter的使用
class ReportConnector extends ConnOp<PageState, ReportState> {
@OverRide
ReportState get(PageState state) {
final ReportState reportState = ReportState();
reportState.total = state.toDos.length;
reportState.done = state.toDos.where((ToDoState tds) => tds.isDone).toList().length;
return reportState;
}

@OverRide
void set(PageState state, ReportState substate) {}
}
ReportConnector 只实现了get 是不是可以认为这个ReportConnector 是单向的 只能从PageState 到 ReportState , set是空实现 或者不实现 ReportState 就无法或者不需要把变化同步给PageState

@lsp10
Copy link
Author

lsp10 commented Mar 8, 2019

class ToDoListAdapter extends DynamicFlowAdapter {
ToDoListAdapter()
: super(
pool: <String, Component>{ 'toDo': ToDoComponent(),},
connector: _ToDoListConnector(),
reducer: buildReducer(),
);
}

ToDoListAdapter pool参数是什么含义

@zjuwjf
Copy link
Contributor

zjuwjf commented Mar 8, 2019

@zjuwjf 例子看懂了 关于Connector和Adapter还差点意思 尤其是Adapter的使用
class ReportConnector extends ConnOp<PageState, ReportState> {
@OverRide
ReportState get(PageState state) {
final ReportState reportState = ReportState();
reportState.total = state.toDos.length;
reportState.done = state.toDos.where((ToDoState tds) => tds.isDone).toList().length;
return reportState;
}

@OverRide
void set(PageState state, ReportState substate) {}
}
ReportConnector 只实现了get 是不是可以认为这个ReportConnector 是单向的 只能从PageState 到 ReportState , set是空实现 或者不实现 ReportState 就无法或者不需要把变化同步给PageState

是的

@lsp10
Copy link
Author

lsp10 commented Mar 8, 2019

class DynamicFlowAdapter extends Logic
with RecycleContextMixin
implements AbstractAdapter {
final Map<String, AbstractLogic> pool;
final Connector<T, List> connector;

在 dynamicFlowAdapter中可以看出pool 是个map
key String类型
value AbstractLogic

Component 继承自AbstractLogic

@CharlesZqikai 嗯是的 这是做什么用的?里面为什么放的是pool: <String, Component>{ 'toDo': ToDoComponent(),}, @zjuwjf

@lsp10
Copy link
Author

lsp10 commented Mar 8, 2019

@CharlesZqikai 嗯嗯 @zjuwjf 官方解答一下

@han-xiaowei
Copy link
Contributor

什么时候能出API文档

@zjuwjf
Copy link
Contributor

zjuwjf commented Mar 12, 2019

更新了一些文档, 可以参考

目录
What's-adapter
What's-connector

@lsp10
Copy link
Author

lsp10 commented Mar 13, 2019

@zjuwjf adapter 好抽象
StaticFlowAdapter
DynamicFlowAdapter
CustomAdapter

这三个adapter 适用于什么情况 文字和图片都太苍白 还是代码更具体 show me the code

@guodf
Copy link

guodf commented Mar 15, 2019

源码的注释有点少 太简单 关于Connector和Adapter的特有概念说明文档太少 例子中很少有注释

#61

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
@guodf @zjuwjf @lsp10 @han-xiaowei @linisme and others