オーバーレイ付きモーダルを実装しようとしています。モーダルはネストすることができ、別のモーダルを開くことが可能です。オーバーレイバックグラウンドはスタック可能でなければなりません(新しいモーダルごとに暗く表示しないでください)。Reactは、クラスを持つすべてのコンポーネントを見つけ、コンポーネントの状態や小道具を外部から更新します。オーバーレイ付きモーダル
私は反応ポータルを使用してドキュメントにモーダルを追加します。
私は、DOMノードを操作すると、すべてのモーダルアクティブまたは非アクティブにすることができます。
class Modal extends React.Component {
componentDidMount() {
const previousModal = findDOMNode(this).previousSibling
if (previousModal) {
previousModal.className = "modal inactive"
}
}
componentWillUnmount() {
const previousModal = findDOMNode(this).previousSibling
if (previousModal) {
previousModal.className = "modal"
}
}
render() {
return (
<div className="modal">Model</div>
);
}
}
<div>
<div class="modal inactive" data-reactid="2">Model</div>
<div class="modal inactive" data-reactid="3">Model</div>
<div class="modal" data-reactid="4">Model</div>
</div>
それが正しい解決策ではないように感じます。だから私はどんなアイデアも探している。
あなたはどのような質問に答えようとしていますか? このコードは確実に機能しますが、FluxやControllerモデルのようなものを使用して各モーダルの状態を更新し、DOM APIの代わりにReact APIを使用して再レンダリングする方がよいでしょう。 –