Skip to content

Commit 967bcb5

Browse files
authored
Merge pull request #2325 from didi/fix-getcomponent-error
feat: getComponent 找不到组件时, 添加错误提醒
2 parents 35e9697 + 0a2632a commit 967bcb5

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

packages/webpack-plugin/lib/runtime/optionProcessor.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { hasOwn, isEmptyObject, extend } from './utils'
22
import { isBrowser } from './env'
33
import transRpxStyle from './transRpxStyle'
44
import animation from './animation'
5+
import { error } from '@mpxjs/utils'
56
const dash2hump = require('../utils/hump-dash').dash2hump
67

78
export function processComponentOption (
@@ -107,6 +108,10 @@ registered in parent context!`)
107108

108109
export function getComponent (component, extendOptions) {
109110
component = component.__esModule ? component.default : component
111+
if (!component) {
112+
error('getComponent() expected component options as first argument, but got undefined.')
113+
return null
114+
}
110115
// eslint-disable-next-line
111116
if (extendOptions && !component.__mpxExtended) {
112117
extend(component, extendOptions, { __mpxExtended: true })

packages/webpack-plugin/lib/runtime/optionProcessorReact.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import AsyncSuspense from '@mpxjs/webpack-plugin/lib/runtime/components/react/dist/mpx-async-suspense'
22
import { memo, forwardRef, createElement } from 'react'
3+
import { error } from '@mpxjs/utils'
34
import { extend } from './utils'
45

56
export function getComponent (component, extendOptions) {
67
component = component.__esModule ? component.default : component
8+
if (!component) {
9+
error(
10+
`getComponent expecting a function/class component ${extendOptions?.displayName ? `[${extendOptions.displayName}]` : ''} as first argument, but got undefined.`
11+
)
12+
return null
13+
}
714
// eslint-disable-next-line
815
if (extendOptions && !component.__mpxExtended) {
916
extend(component, extendOptions, { __mpxExtended: true })

0 commit comments

Comments
 (0)