Match-id-f0e7424b75b18470293cc3ef4a49bbe02d65caf4

This commit is contained in:
* 2022-01-25 14:53:48 +08:00 committed by *
parent 2d97a19610
commit b6d3a8f5fe
7 changed files with 11 additions and 13 deletions

View File

@ -66,8 +66,8 @@ function executeRender(
return getFirstCustomDom(treeRoot);
}
function findDOMNode(domOrEle: Element): null | Element | Text {
if (!domOrEle) {
function findDOMNode(domOrEle?: Element): null | Element | Text {
if (domOrEle == null) {
return null;
}

View File

@ -94,7 +94,7 @@ export function getEventToListenerMap(target: EventTarget): Map<string, EventLis
let eventsMap = target[internalKeys.nonDelegatedEvents];
if (!eventsMap) {
eventsMap = new Map();
target[internalKeys.nonDelegatedEvents] = new Map();
target[internalKeys.nonDelegatedEvents] = eventsMap;
}
return eventsMap;
}

View File

@ -72,7 +72,7 @@ export class CustomKeyboardEvent extends CustomBaseEvent {
super(customEvtName, nativeEvtName, nativeEvt, vNode, target);
this.key = getKey(nativeEvt);
this.charCode = nativeEvtName === 'keypress' ? uniqueCharCode(nativeEvt) : 0;
this.keyCode = nativeEvtName === 'keydown' || nativeEvtName === 'keyup' ? nativeEvt.keyCode : 0;
this.keyCode = (nativeEvtName === 'keydown' || nativeEvtName === 'keyup') ? nativeEvt.keyCode : 0;
this.which = this.charCode || this.keyCode;
}
}

View File

@ -9,7 +9,7 @@ const SPACE_CHAR = String.fromCharCode(CHAR_CODE_SPACE);
function getInputCharsByNative(
eventName: string,
nativeEvent: any,
): string | null | void {
): string | null {
if (eventName === 'compositionend') {
return (nativeEvent.detail && nativeEvent.detail.data) || null;
}

View File

@ -54,7 +54,7 @@ function captureLazyComponent(
processing.type = Component;
const lazyVNodeTag = getLazyVNodeTag(Component);
processing.tag = getLazyVNodeTag(Component);
processing.tag = lazyVNodeTag;
const lazyVNodeProps = mergeDefaultProps(Component, processing.props);
const lazyRender = LazyRendererMap[lazyVNodeTag];

View File

@ -157,12 +157,12 @@ function canCapturePromise(vNode: VNode | null): boolean {
}
// 处理Suspense子组件抛出的promise
export function handleSuspenseChildThrowError(parent: VNode | null, processing: VNode, error: any): boolean {
export function handleSuspenseChildThrowError(parent: VNode, processing: VNode, error: any): boolean {
let vNode = parent;
// 向上找到最近的不在fallback状态的Suspense并触发重新渲染
do {
if (vNode?.tag === SuspenseComponent && canCapturePromise(vNode)) {
if (vNode.tag === SuspenseComponent && canCapturePromise(vNode)) {
if (vNode.suspensePromises === null) {
vNode.suspensePromises = new Set();
}

View File

@ -25,11 +25,9 @@ export function callDerivedStateFromProps(
const newState = getDerivedStateFromProps(nextProps, oldState);
// 组件未返回state,需要返回旧的preState
if (newState) {
processing.state = { ...oldState, ...newState };
return;
}
processing.state = oldState;
processing.state = newState === null || newState === undefined
? oldState
: { ...oldState, ...newState };
}
}