增刊 我的堆栈是React.js + TypeScript。 我在同一名称空间中有两个类。 在两个单独的文件(MaterialSelector.tsx和MaterialSearchResult.tsx)
中MaterialSelector.tsx:
namespace Materials {
export class MaterialsSelector extends React.Component<Props, State>{public render(): JSX.Element {
return <div className={'aeworms-materials-selector' + (this.state.searching ? ' -searching' : '')}>
<div className='-search-form'>
<input
type='search'
placeholder='Naam, artikelnummer, …'
value={this.state.query}
onChange={ev => this.search((ev.target as HTMLInputElement).value)}
onFocus={ev => this.startSearch()}
onBlur={ev => this.stopSearch((ev.target as HTMLInputElement).value)}
/>
{this.state.searching
? <button type='button' className='-cancel'>Annuleer</button>
: null}
</div>
<table className='-search-results'>
<tbody>
{this.state.searchResults.map(material => {
<MaterialsSearchResult />
})}
</tbody>
</table>
</div>
}}
MaterialsSearchResult.tsx:
namespace Aeworms.Materials {
export class MaterialsSearchResult extends React.Component<Props, State> {
public render(): JSX.Element {
return <tr>
<td></td>
</tr>
}
}}
我收到了这个警告:
警告:React.createElement:type不应为null,undefined,boolean或number。它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件)。检查MaterialsSelector
的呈现方法。
警告@ react.js:19287
指向哪个。 不知何故,MaterialSelector类不会“看到”MaterialsSearchResult类,即使它位于同一名称空间中。 我试图导入这个类,(导入MaterialsSearchResult = Materials.MaterialsSearchResult)仍然有同样的错误。 尝试导出为默认值,导致另一个错误:
找不到名称'MaterialsSearchResult'
那么,我做错了什么?