ホーム>source

ReactDOM.createPortal()を使用してフォームを表示しようとしています。 初めて正常に動作します。 しかし、私が閉じて再度開くと-それは表示されません。 エラーメッセージなし-なし。 「main-win」と作成されたdivは兄弟です。 これは正しい方法ですか??

class MyForm extends Component {
    constructor(props) {
        super(props);
        this.state = {
            el : document.createElement('div'), 
            divid : Math.floor(Math.random() * 1000000000)
        }
    }
    componentDidMount() {
        document.getElementById('main-win').style= "display:none"
    }
    componentWillUnmount() {
        document.getElementById('main-win').style= "display:block"  
    }
    handleClose(){
        var element = document.getElementById(this.state.divid)
        element.parentNode.removeChild(element)
        document.getElementById('main-win').style= "display:block"
    }
    render(){
        return(
              <div id={this.state.divid} className="form-display">
                  <Theform /> // details removed
              </div>
              )
    }

}

あなたの答え
  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ javascript - コメントが入力されたときにイベントを破棄しますか?