У вас есть какой - то псевдо - код, но вы будете иметь 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>
)
}
})