• React immutable (redux-immutable 统一数据格式)


    https://www.cnblogs.com/nanianqiming/p/10356542.html
    
    https://www.jianshu.com/p/0c0786f119c7
    
    https://blog.csdn.net/weixin_39786582/article/details/82623353
    
    https://www.jianshu.com/p/5718c917d701
    
    import immutable from "immutable";
    
    const defaultState = immutable.fromJS({
        name: "1",
        age: "2",
        sign: "3",
        list: [],
        flag: true,
        modifyIndex: -1,
        modifyItem: {}
    })
    
    
    export default (state = defaultState, action) => {
        switch (action.type) {
            case "INPUT_CHANGE":
                switch (action.params) {
                    case 1:
                        return state.updateIn(["name"], (x) => x = action.value);
                    case 2:
                        return state.updateIn(["age"], (x) => x = action.value);
                    case 3:
                        return state.updateIn(["sign"], (x) => x = action.value);
                }
    
            case "TAB_ADD":
                var obj = {
                    name: state.getIn(["name"]),
                    age: state.getIn(["age"]),
                    sign: state.getIn(["sign"])
                };
                return state.updateIn(["list"], (x) => x.push(obj)).setIn(["name"], "").setIn(["age"], "").setIn(["sign"], "");
            //toJS  toArry  toObject  fromJS
    
            // let newState = addState.toObject();
            // newState.name = "";
            // newState.age = "";
            // newState.sign = "";
            // return immutable.Map(newState);
    
            case "MODIFY_TAB":
                let newState = state.updateIn(["modifyIndex"], (x) => x = action.value);
    
                let obj = newState.getIn(["list"])
                    .getIn([action.value]);
    
                return newState.updateIn(["modifyItem"], (x) => x = obj).setIn(["flag"], false);
            case "MODIFY_CHANGE":
                switch (action.params) {
                    case 1:
                        return state.updateIn(["modifyItem", "name"], (x) => x = action.value);
                    case 2:
                        return state.updateIn(["modifyItem", "age"], (x) => x = action.value);
                    case 3:
                        return state.updateIn(["modifyItem", "sign"], (x) => x = action.value);
                }
            case "TAB_UPDATE":
               return state.updateIn(["list"],(x)=>x.splice(state.getIn(["modifyIndex"]),1,state.getIn(["modifyItem"])))
               .setIn(["flag"],true)
    
        }
        return state;
    }
    

      

  • 相关阅读:
    正则表达式
    .net打印控件基本用法
    批处理
    dos命令
    网络散点
    华为路由器命令
    用eNSP模拟
    oracle PL/SQL语法基础
    路由
    docker redis shell
  • 原文地址:https://www.cnblogs.com/zhanglanzuopin/p/12987671.html
Copyright © 2020-2023  润新知