【发布时间】:2017-11-23 02:06:09
【问题描述】:
我正在使用 typescript@2.6.1 和 react 和 react-dom @15.6.2。
我似乎无法调试此问题:
未捕获的类型错误:无法读取 Menu.handleClick 处未定义的属性“setState”。
这是this.setState( (prevState) => {
import * as React from "react";
import * as ReactDOM from 'react-dom';
import Monaco from './Monaco';
import shiftOverlayButtons from '../common/shiftOverlayButtons';
export interface Props {
}
export interface State {
isOpen: boolean;
}
export default class Menu extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
}
public state: State = {
isOpen: false
};
public render() {
return <button id="overlay-btn" className="menu-btn" onClick={this.handleClick}></button>
}
public handleClick(): void {
this.setState( (prevState) => {
if(prevState.isOpen === false){
this.openMenu();
return {
isOpen: true
};
}
else {
this.closeMenu();
return {
isOpen: false
}
}
});
}
private openMenu(): void {
shiftOverlayButtons(true);
ReactDOM.render(<Monaco/>, document.getElementById("overlay"));
}
private closeMenu(): void {
shiftOverlayButtons(false);
//ReactDOM.unmountComponentAtNode(document.getElementById("overlay"));
}
}
ReactDOM.render(<Menu/>, document.body);
PS:当我执行this.handleClick.bind(this) 时,我收到另一个错误:GET file:///Users/kalpa/Desktop/monaco-sample/vs/loader.js net::ERR_FILE_NOT_FOUND ...我正在使用 webpack @3.8 .1
【问题讨论】:
标签: reactjs typescript jsx