Giter Site home page Giter Site logo

dva-model-extend's Introduction

dva-model-extend

npm package NPM downloads Dependency Status

Utility method to extend dva model.

Installation

npm install --save dva-model-extend

Usage

import modelExtend from 'dva-model-extend';

const human = {
  state: {
    stomach: null,
  },
  reducers: {
    eat(state, { payload: food }) {
      return { ...state, stomach: food };
    },
  },
};

const benjy = modelExtend(human, {
  namespace: 'human.benjy',
  state: {
    name: 'Benjy',
  },
});

API

modelExtend(...models) => Model

Behaviour:

  • The model.namespace will be overrided by latter model.
  • model[state|subscriptions|effects|reducers] will be merged as Object.assign.
  • model.state will be overrided be latter model if it isn't an object.

License

MIT

dva-model-extend's People

Contributors

benjycui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dva-model-extend's Issues

复用的model在使用effects时会有问题

比如model B,和model C通过这个组件扩展自model A。

一个应用入口文件B会注册 model B,一个应用入口文件会注册model C,model A并不会被这两个应用直接注册,它只是用来定义B和C的共用部分。

model A里面有一个effects 叫fun1,它里面用select来取全局state的某一个属性test。

B和C都会用到这个个effects,运行阶段,select中的state是实际是包含当前注册的模型名,这里有个问题就是,运行阶段select中我无法知道当前模型的名字,也就是下面示例中我取state的值时,在B、C两个应用中,模型命名空间部分应该是不同,有什么办法可以在运行时知道当前的模型名称呢?

*fun1({ payload }, { call, put, select }) {
  cosnt test = select(state=>state.模型命名空间.test);
}

是否支持react-native?

今天在react-native下想使用该插件:
import modelExtend from 'dva-model-extend'

却报错:
image

modelA 和 modelB 在同一个页面connect

modelA和modelB都extend BaseModel
在同一个页面中需要connnet modelA,modelB
那么他们的state名称会因此冲突吗?
页面中如何{somestate}=this.props ?

类似的应用场景比较好的实现方式是怎样?

请问使用场景是什么呢?

安装后, 按照test 自己扩展了下已有model. 但是远程请求部分的 service.update 等等实际地址无法替换.只能是一个model集成另一个model的属性吗?

水平很菜,可能提问很初级,还望见谅. 谢谢.

生产环境可用吗?

model.state will be overrided be latter model if it isn't an object.

这句说明,能展开解释一下吗?

state肯定是对象的吧,这句话有点困惑。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.