我對組件狀態有一個疑問。我有一個瓷磚組件。在點擊拼貼組件時,我正在切換拼貼組件的細節。在React JS中共享重複響應組件的共同狀態
/* ---- Tile component ---- */
import React, { Component } from 'react';
import TileDetail from './TileDetail';
class Tile extends Component {
constructor(props) {
super(props);
this.state = {
isTileDetailOpened:false
};
this.showTileDetails=this.showTileDetails.bind(this);
}
showTileDetails(networkName){
this.setState({isTileDetailOpened:!this.state.isTileDetailOpened});
alert(networkName);
}
render() {
const isTileDetailOpened = this.state.isTileDetailOpened;
return (
<li className={ !this.state.isTileDetailOpened ? "tile-item" : "tile-item-with-detail" }>
<div onClick={(e) => this.showTileDetails(this.props.objTile.network_name)}>
{this.props.objTile.network_name}
</div>
{this.state.isTileDetailOpened ? <TileDetail /> : <div/>}
</li>
);
}
}
export default Tile;
/* ---- Tile Detail component ---- */
import React, { Component } from 'react';
class TileDetail extends Component {
render() {
return (
<div className="tile-detail">
<p>TileDetails</p>
</div>
);
}
}
export default TileDetail;
正如您所看到的,我正在切換瓦片細節點擊瓦片點擊和它的工作正常。 我正在渲染我的頁面上收集的瓷磚。如果我點擊各個瓷磚,它工作正常。但是,如果我看到一個瓦片的細節,我想要的其他瓦片細節應始終隱藏。 您能否就此指導我。 React JS上的新功能
您需要將'isTileDetailOpened'存儲在'TileDetail'組件中。試着這樣做。它會工作。如果你無法弄清楚,請告訴我 – iamsaksham