:私は反応しReduxの使用してプロジェクトを書いているとき、私はRecordTaskPopUp
コンポーネントからモーダルをポップアップ表示したいときの状態ManageTimer
のisTimeOut
コンポーネントはタイマーイベントによって変更されます(わかりやすくするために、isTimeOut
をtrue
に直接定義しています)。は、コンポーネントにリアクト
問題:モーダルは、ページ上に表示されません。私は、問題見つけるためにやっていること
:
- を私は私のCSSファイルで
.modal {display: block}
を変更したが、それはまだページに表示されていません。 私もそれは完全に正常に動作し、私の
RecordTskPopUp
コンポーネントにモーダル以外の何か他のものをレンダリングしてみてください。ですから、問題はモーダルそのものであると思います。は、ブートストラップドキュメントから
RecordTaskPopUp
の全体のレンダリングスニペットを貼り付けます。
誰かがこの問題の原因である可能性があることを教えてもらえますか?どうもありがとう!
class ManageTimer extends React.Component {
constructor(props) {
super(props);
this.state = {
isTimeOut: true
}
this.closePopUp = this.closePopUp.bind(this);
}
closePopUp() {
this.setState({
isTimeOut: false
});
}
render() {
return (
{this.state.isTimeOut ?
<RecordTaskPopUp
closePopUp={this.closePopUp}/> :
<p>There is still time remaining</p>
}
);
}
}
const RecordTaskPopUp = ({closePopUp}) => {
return (
<div className="modal fade">
<div className="modal-dialog" role="document">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title">Modal Header</h5>
<button type="button" className="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true" onClick={closePopUp}>×</span>
</button>
</div>
<div className="modal-body">
<p> Modal Body</p>
</div>
<div className="modal-footer">
<button type="button" className="btn btn-primary">Save changes</button>
<button type="button" className="btn btn-secondary" data-dismiss="modal" onClick={closePopUp}>Close</button>
</div>
</div>
</div>
</div>
</div>
);
};
に記載されています。しかし、コード化されている方法は、Reactのやり方とはまったく違う古いスタイルのDOMレンダリングです。あなたは反応のために構築されたカスタムモーダルコンポーネントを見つけなければなりません。私は現在、 "React Bootstrap"を使用しています。公式ブートストラップのソースコードから提供されているモーダルを使用しようとすると、あなたのモーダルは決して動かないでしょう。 –
しかし、 "btn"や "navbar"のようなブートストラップクラスを使うと、うまく動作します。 「モーダル」のような最も複雑なコンポーネントはすべて、それを使用するためにカスタマイズされた反応コンポーネントが必要ですか? –
初心者のために混乱する部分です。私はあまりにもその道を歩いている。これらのクラスを使用できる理由は、特にCSSクラスに関連するためです。 CSSはうまく動作しますが、javascriptが必要な機能が必要なときは、javascriptの古いブートストラップを残しておく必要があります。 –