我使用的反应模式,使一个模式在打字稿的反应设置。
这是该模式的文件:
import * as React from 'react';
import * as ReactModal from 'react-modal';
class MyModal extends React.Component<any, any> {
constructor () {
super();
this.state = {
showModal: false
};
this.handleOpenModal = this.handleOpenModal.bind(this);
this.handleCloseModal = this.handleCloseModal.bind(this);
}
handleOpenModal () {
this.setState({ showModal: true });
}
handleCloseModal () {
this.setState({ showModal: false });
}
public modalState () {
const stateRef = this.state;
return stateRef["showModal"];
}
render () {
return (
<div>
<button onClick={this.handleOpenModal}>Trigger Modal</button>
<ReactModal
isOpen={this.modalState()}
contentLabel="Minimal Modal Example"
>
<button onClick={this.handleCloseModal}>Close Modal</button>
</ReactModal>
</div>
);
}
}我就是这样用它的:
import * as React from 'react';
import {UndoRedo} from './undo-redo';
import * as MyModal from './my-modal';
export class Header extends React.PureComponent<any, {}> {
public render() {
return (
<header className="header">
Header
<UndoRedo/>
<MyModal/>
</header>
);
}
}下面是我遇到的错误:
错误在./src/components/header/index.tsx (11,10):ERROR TS2604: JSX元素类型'MyModal‘中没有任何构造或调用签名。
我环顾四周,没有看到任何基于类的方法来处理同样的问题。我所看到的似乎是基于一个缺失的渲染功能。我确实试着公开了,但没什么用。
发布于 2017-04-16 08:44:56
该错误消息意味着您正在不正确地导入它。您应该导出您的类并正确导入它。
export default class MyModal extends .... 然后当你导入它时
import MyModal from './my-modal';发布于 2018-07-30 12:36:22
您还可以尝试以下列方式导入React
import ReactModal = require('react-modal'); https://stackoverflow.com/questions/43434806
复制相似问题