Я хочу открыть response-image-lightbox-rotate внутри моего конкретного div, а не за пределами корневого элемента.
Я пытаюсь открыть response-image-lightbox-rotate внутри моего div, используя ReactDom.createPortal, но ничегоработает. Во-вторых, я пытался добавить код в div по-прежнему не работает.
Использование ReactDom.createPortal
import React, { Component } from "react";
import ReactDom, { render } from "react-dom";
import Lightbox from "react-image-lightbox";
import "react-image-lightbox/style.css";
const images = [
"//placekitten.com/1500/500",
"//placekitten.com/4000/3000",
"//placekitten.com/800/1200",
"//placekitten.com/1500/1500"
];
class App extends Component {
constructor(props) {
super(props);
this.state = {
photoIndex: 0,
isOpen: false
};
}
render() {
const { photoIndex, isOpen } = this.state;
return (
<div id="lala">
<div id="portal" />
<button
type="button"
onClick={() =>
ReactDom.createPortal(
<Lightbox
mainSrc={images[photoIndex]}
nextSrc={images[(photoIndex + 1) % images.length]}
prevSrc={
images[(photoIndex + images.length - 1) % images.length]
}
onCloseRequest={() => this.setState({ isOpen: false })}
onMovePrevRequest={() =>
this.setState({
photoIndex: (photoIndex + images.length - 1) % images.length
})
}
onMoveNextRequest={() =>
this.setState({
photoIndex: (photoIndex + 1) % images.length
})
}
/>,
document.getElementById("lala")
)
}
>
Open Lightbox
</button>
</div>
);
}
}
render(<App />, document.getElementById("root"));
Поэтому, когда я нажимаю на изображение, я хочу, чтобы мой лайтбокс был открыт внутриdiv с идентификатором #lala, но он всегда добавляет dom вне корневого элемента.