dva/model

作者: BergHuang | 来源:发表于2018-03-02 18:23 被阅读0次

    ```

    reducers: {

        // 用于处理数据,定义一些action 用于effects激发,唯一能修改state的地方

        // 格式为 (state, action) => newState 或 [(state, action) => newState, enhancer]

        // 例如:给state 加一个字段fieldA

        doSomething(state, payload){ return {...state, fieldA: payload.fieldA}; }

    },

    effects: {

        // 定义一些action,用于subscriptions中激发

        *action1(payload, {put,call,select,take}) {

            // put 用于发起action调用reducers中的函数
            put(type: 'doSomething', payload);

            // call 用于同步调用方法

            const a = yield call(funcName, props);

            // select 用于从state获取数据

            const a = select(state => select.fieldA);

            // take 用于获取发送的数据(不知怎么用给它传啥返回的对象里就包含啥)

        },

        subscriptions: { // app.start()后立即执行

        setup({ dispatch, history }) {

          return history.listen(({ pathname, search }) => {

            console.log(`pathname...: ${pathname}`);

            dispatch({ type: 'namespace/action1' }); // 从这里激发effects中的action

          });

        }

      }

    },

    ```

    相关文章

      网友评论

          本文标题:dva/model

          本文链接:https://www.haomeiwen.com/subject/nmaaxftx.html