JSX元素类型没有构造或调用签名

时间:2019-01-13 15:15:37

标签: reactjs typescript spfx

我正在尝试在我的SPFX应用程序中正常工作,并且我确定我的课堂不正确

我已经在JS中尝试过我的代码,并使用npm install运行了它,并且工作正常,但是当我尝试使用spfx在TS中进行操作时,出现此错误:

import * as React from 'react';
import PropTypes from 'prop-types';



 export const Checkbox = ({ type = 'checkbox', checked = false, onChange, id }) => {

return <input id={id} type={type} checked={checked} onChange={onChange} />;
};

Checkbox.propTypes = {
type: PropTypes.string,
name: PropTypes.string.isRequired,
checked: PropTypes.bool,
onChange: PropTypes.func.isRequired,
};

我用

来称呼它
return (
 <label style={{display: 'block'}} key={item.id}>
                            <Checkbox
                                style={{display: 'block'}}
                                checked={checked}
                                onChange={this.handleChange}
                                id={item.id}
                                statement={item.statement}
                            />
                            {item.statement}
                        </label> 

我的确切错误是:错误TS2604:JSX元素类型“复选框”没有任何构造或调用签名。

有什么想法聪明的人吗?

1 个答案:

答案 0 :(得分:1)

由于您未使用默认导出,因此您需要指定要从模块中导入的组件:

import { Checkbox } from './Checkbox

或者您可以使用默认导出并使用适当的语法导入它

const Checkbox = /* ... */
export default Checkbox;

import Checkbox from './Checkbox