默认情况下,本节所有 API 的导出包名为:@modern-js/runtime/model
。
如果是在 Modern.js 以外单独集成 Reduck,导出包名为:@modern-js-reduck/react
。
Reduck 原始类型较为复杂,以下涉及类型定义的地方,展示的是简化后的类型信息。原始类型见 connect。
connect
功能上同 useModel
一致,是对应的 HOC 风格的 API。建议优先使用 Hook 风格的 useModel
。
models
:传入的 1 个或多个 Model,当 models
为数组类型参数时,最后两项元素可以是用于筛选 State 的函数( SelectStateToProps
类型)和用于筛选 Actions 的函数( SelectActionsToProps
类型)。
SelectStateToProps
: modelStates
是传入的 Model 对象的 State 组成的数组,ownProps
是当前组件接收外部传递的 props
,SelectStateToProps
返回的数据会传递到组件的 props
上。当 models
中没有传入 SelectStateToProps
参数时,所有 Model 的 State 进行合并后传递到组件的 props
上。SelectActionsToProps
: modelActions
是传入的 Model 对象的 Actions 组成的数组,ownProps
是当前组件接收外部传递的 props
,SelectActionsToProps
返回的数据也会传递到组件的 props
上。当 models
中没有传入 SelectActionsToProps
参数时,所有 Model 的 Actions 进行合并后传递到组件的 props
上。options
:可选参数,用于辅助配置。目前支持设置 forwardRef
,用于控制是否转发组件的 ref
,默认值为 false
,表示不转发 ref
。设置为 {forwardRef: true}
,表示转发 ref
。
返回一个高阶组件:接收一个传入的组件,返回一个在 props
上注入了额外 State 和 Actions 的组件。