【发布时间】:2019-01-27 12:48:35
【问题描述】:
我是新来的反应,并且遇到了问题。
我有一个包含对象映射数组的组件 (film.js),通过单击每个对象,我想根据单击的元素之一来更改 {komponentaFilma}。
我的逻辑可能完全错误,请随时为我指明正确的方向,谢谢。
app.js
render() {
let komponentaFilma = null;
if ( this.state.prikaziFilmCont ) {
komponentaFilma = (
<div className="trailer_container">
<p>Ovo je film koji je kliknut</p>
</div>
);
}
return (
<div>
<div className="movies-container">
{this.state.filmovi.map((film, index) => {
return <Film
naslov={film.naslov}
naslovnaSlika={film.naslovnaSlika}
key={film.id}
openFilm={() => this.injectFilm(index)}/>
})}
</div>
<Gallery />
{komponentaFilma}
</div>
);
}
我也在 app.js 中使用这个方法
injectFilm = (filmIndex) => {
const prikaziFilm = this.state.prikaziFilmCont;
this.setState({prikaziFilmCont: !prikaziFilm})
}
这个也有
prikaziFilmCont: false
在状态
film.js 看起来像这样
const Film = (props) => {
return (
<div onClick={props.openFilm} className="singleMovie">
<h3>{props.naslov}</h3>
<img src={props.naslovnaSlika} alt="nova slika "/>
</div>
)
}
这是我的 app.js 中这些对象被点击的状态,我想将这些对象(onclick)中的信息传递给 komponenta filma。
state = {
filmovi: [
{
"naslov": "Safarikova",
"id": "00",
"naslovFilma": "Safarikova",
"godina": "Safarikova",
"opis": "Lorem ipsum dolor sit ....",
"naslovnaSlika": "http://dusanmuncan.underconstructioncity.com/srdjan_susa/images/safarikova.png",
"linkVideo": "http://video/video.mp4",
"externiLink": "http://www.vimeo.com/video.mp4"
}, {
"naslov": "Svetski sampion",
"id": "01",
"naslovFilma": "Sampion",
"godina": "Safarikova",
"opis": "Cupcake ipsum color sit pinaple juice ....",
"naslovnaSlika": "http://dusanmuncan.underconstructioncity.com/srdjan_susa/images/trailer_prvaksveta.png",
"linkVideo": "http://video/videosampoion.mp4",
"externiLink": "http://www.vimeo.com/videosampion.mp4"
}, {
"naslov": "Stolice",
"id": "02",
"naslovFilma": "stolicice malene",
"godina": "stolice ",
"opis": "sede ljudi na stolicama i na kraju ustanu",
"naslovnaSlika": "http://dusanmuncan.underconstructioncity.com/srdjan_susa/images/trailer_stolice.png",
"linkVideo": "http://video/stolice.mp4",
"externiLink": "http://www.vimeo.com/sto_lice.mp4"
}
],
prikaziFilmCont: false
}
如果您需要我的更多信息,请写信。
【问题讨论】:
-
当
Flim组件被点击时,你能看到komponentaFilma吗?你只想改变komponentaFilma,根据Flim点击 -
@JSEngine 我想用不同的 html 更改 komponentaFilma 的结构,并传递从 film.js 中单击的对象以从该对象中获取其他数据并显示它。所有数据都在 app.js 中。我已经添加了我的状态,所以你可以看到我需要什么。单击时,我需要在 komponentaFilm 中显示来自对象的数据。需要不同的风格和组成。