Esempio n. 1
0
 svgAttr: function(dom, name, val) {
     // http://www.w3school.com.cn/xlink/xlink_reference.asp
     // https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#notable-enh
     // a ncements xlinkActuate, xlinkArcrole, xlinkHref, xlinkRole, xlinkShow,
     // xlinkTitle, xlinkType eslint-disable-next-line
     let method =
         typeNumber(val) < 3 && !val ? "removeAttribute" : "setAttribute";
     let nameRes = getSVGAttributeName(name);
     if (nameRes.ifSpecial) {
         let prefix = nameRes.name.split(":")[0];
         // 将xlinkHref 转换为 xlink:href
         dom[method + "NS"](NAMESPACE[prefix], nameRes.name, val || "");
     } else {
         dom[method](nameRes, typeNumber(val) !== 3 && !val ? "" : val);
     }
 },
Esempio n. 2
0
function setStateByProps(instance, fiber, nextProps, prevState) {
    fiber.errorHook = gDSFP;
    let fn = fiber.type[gDSFP];
    if (fn) {
        let partialState = fn.call(null, nextProps, prevState);
        if (typeNumber(partialState) === 8) {
            fiber.memoizedState = Object.assign({}, prevState, partialState);
        }
    }
}
Esempio n. 3
0
function getSafeValue(value) {
    switch (typeNumber(value)) {
        case 2:
        case 3:
        case 8:
        case 4:
        case 0:
            return value;
        default:
            // function, symbol are assigned as empty strings
            return "";
    }
}
Esempio n. 4
0
function getNonChildrenInnerMarkup(props) {
    const innerHTML = props.dangerouslySetInnerHTML;
    if (innerHTML != null) {
        if (innerHTML.__html != null) {
            return innerHTML.__html;
        }
    } else {
        const content = props.children;
        var n = typeNumber(content)
        if (n === 3 || n === 4) {
            return encodeEntities(content);
        }
    }
    return null;
}
Esempio n. 5
0
File: Refs.js Progetto: fygethub/anu
//fix 0.14对此方法的改动,之前refs里面保存的是虚拟DOM

function getDOMNode() {
    return this;
}

export let Refs = {
    // errorHook: string,//发生错误的生命周期钩子
    // errorInfo: [],    //已经构建好的错误信息
    // doctors: null     //医生节点
    // error: null       //第一个捕捉到的错误
    fireRef(fiber, dom) {
        let ref = fiber.ref;
        let owner = fiber._owner;
        try {
            let number = typeNumber(ref);
            refStrategy[number](owner, ref, dom);
            if(owner && owner.__isStateless ){
                delete fiber.ref;
                fiber.deleteRef = true;
            }
         
        } catch (e) {
            pushError(fiber, "ref", e);
        }
    },
};

const refStrategy = {
    4: function(owner, ref, dom) {
        //string
Esempio n. 6
0
                    frame.type.type.$$typeof === REACT_PROVIDER_TYPE
                ) {
                    const provider = frame.type;
                    this.popProvider(provider);
                }
                continue;
            }
            const child = frame.children[frame.childIndex++];

            out += this.render(child, frame.context, frame.domNamespace);
        }
        return out;
    },

    render(child, context, parentNamespace) {
        var t  = typeNumber(child)
        if (t === 3 || t === 4) {
            const text = '' + child;
            if (text === '') {
                return '';
            }
            if (this.makeStaticMarkup) {
                return encodeEntities(text);
            }
            if (this.previousWasTextNode) {
                return '<!-- -->' + encodeEntities(text);
            }
            this.previousWasTextNode = true;
            return encodeEntities(text);
        } else {
            let nextChild;