我对组件状态有一个疑问。我有一个瓷砖组件。在点击拼贴组件时,我正在切换拼贴组件的细节。在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