У вас есть какой - то псевдо - код, но вы будете иметь 3 компонентов: Listings
, ListingsItem
, и ListingsItemDetail
. У вас будет onMouseOver
атрибут React для элемента, ListingsItem
который будет вызывать обработчик событий для установки состояния. Предполагая, что ваш ListingsItemDetail
компонент находится внутри ListingsItem
, вы проверите состояние, чтобы посмотреть, следует ли показывать ListingsItemDetail
. Если ListingsItemDetail
это где-то в другом месте, то вы либо вызовите обработчик событий, переданный в качестве оповещения, либо используете Redux, либо что-то, чтобы установить идентификатор для ListingsItemDetail
отображаемого.
Изменить - добавлен частичный пример:
const ListItem = React.createClass({
getInitialState() {
return {showDescription: false}
},
handleMouseOver() {
this.setState({showDescription: true})
},
handleMouseOut() {
this.setState({showDescription: false})
},
renderDescription() {
if (this.state.showDescription) {
return (
<ListItemDescription description={this.props.item.description} />
)
}
},
render() {
return (
<div onMouseOver={this.handleMouseOver} onMouseOut={this.handleMouseOut}>
List item title: {this.props.item.title}
{this.renderDescription}
</div>
)
}
})