我的問題是嘗試從渲染函數內部調用selectModal。我認為問題是我需要在構造函數中綁定selectModal函數,但這無濟于事。我仍然得到相同的錯誤:FolderIcon.js:37 Uncaught TypeError: 無法在 singleClick (FolderIcon.js:37) 時讀到未定義的產物業 'selectModal'當我像這樣在HTML標簽中使用箭頭函數時,它可以工作,onClick={ () => this.selectModal('Modal A') },但我嘗試僅在雙擊圖像時才打開彈出窗口代碼如下:class FolderIcon extends Component{ constructor(props){ super(props); this.state = { modal: false, modalInfo: "" } this.selectModal = this.selectModal.bind(this); } selectModal = (info) => { this.setState({ modal: !this.state.modal, modalInfo: info }) } render() { let clicks = []; let timeout; function singleClick(event) { this.selectModal('Modal A'); alert("single click"); } function doubleClick(event) { alert('double clicked') } function clickHandler(event) { event.persist() event.preventDefault(); clicks.push(new Date().getTime()); window.clearTimeout(timeout); timeout = window.setTimeout(() => { if (clicks.length > 1 && clicks[clicks.length - 1] - clicks[clicks.length - 2] < 250) { doubleClick(event.target); } else { singleClick(event.target); } }, 250); } return ( <> <div> <img src={foldericon} onClick={clickHandler} alt="" className="folder"/> <p onClick={ () => this.selectModal('Modal A') }> Open Modal A </p> <Modal displayModal={this.state.modal} modalInfo={this.state.modalInfo} closeModal={this.selectModal}/> </div> </> ); }}export default FolderIcon;
無法從渲染內部調用渲染外部的函數(在 reactjs 中)
慕容森
2022-08-27 15:23:38