私は[email protected]を使用しており、reactとreact-dom @ 15.6.2を使用しています。TSX + React:Uncaught TypeError:Menu.handleClickで未定義のプロパティ 'setState'を読み取ることができません
この問題をデバッグできないようです。 未知の型エラー: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:///Users/kalpa/Desktop/monaco-sample/vs/loader.jsネット:: ERR_FILE_NOT_FOUNDを..私はwebpack @ 3.8.1を使用しています。
:変更
もっと
アロー機能が///ユーザ/カルパ/デスクトップ/モナコ:ファイルをGET -sample/vs/loader.js net :: ERR_FILE_NOT_FOUND ... webpack @ 3.8.1を使用しています – kalpa
スタックトレースを表示します –
また、setState関数も間違って使用しています。あなたは関数を送信しているオブジェクトを受け取ります。 setStateの後に関数を使用する場合は、setState({prevState:prevState})を使用して関数を使用できます。 –