В настоящее время я изучаю некоторые реакции, и некоторые из вас могут подумать, что я об этом по-другому, но я хочу попытаться построить что-то в чистом реагировании, без редукции, без плагинов (хорошо response-dom не считается плагином)Соединительный элемент для части состояния в реакции
однако я как бы попал в ловушку, я хочу связать элемент с частью состояния, чтобы я на мыши мог получить доступ к этой части состояния с небольшими проблемами, насколько это возможно, я смотрел на refs
, но, насколько мне известно, это в основном связывает ваше состояние с элементом, а не наоборот в качестве примера псевдокода. Мне нужно что-то в этих строках:
class Example extends Component {
constructor() {
super();
this.mouseOverHandler = this.mouseOverHandler.bind(this);
this.state = {
items: [
{
name: 'First state part',
description: 'this part is ment to be connected to div1'
},
{
name: 'Second state part',
description: 'this part is ment to be connected to div2'
},
{
name: 'Third state part',
description: 'this part is ment to be connected to div3'
}
]
}
}
mouseOverHandler(event) {
console.log(event.target.refs) // <-- this is where I struggle
/**
* what I want here is
*
* if I hover #div1 I want console.log to show:
* {
* name: 'First state part',
* description: 'this part is ment to be connected to div1'
* }
*
* if I hover #div2 I want console.log to show:
* {
* name: 'Second state part',
* description: 'this part is ment to be connected to div2'
* }
*
* and if I hover #div3 I want console.log to show:
* {
* name: 'Third state part',
* description: 'this part is ment to be connected to div3'
* }
*/
}
render() {
return (<div onMouseOver={this.mouseOverHandler}>
<div id='div1' ref={this.state.items[0]} key={'0'}>
<div id='subDiv1-1'>
</div>
<div id='subDiv1-2'>
</div>
</div>
<div id='div2' ref={this.state.items[1]} key={'1'}>
<div id='subDiv2-1'>
</div>
</div>
<div className='div3' ref={this.state.items[2]} key={'2'}>
<div id='subDiv3-1'>
</div>
</div>
</div>);
}
}
любые идеи о том, как я должен это делать?
До тех пор, пока вы привязываете обработчик к «этому» (который вы, кажется, делаете в конструкторе), вы должны иметь возможность acesss state в mouseOverHandler, или я не хватает точки? –
Возможно, я сформулировал вопрос немного плохо (если так мне жаль), у меня нет проблем с доступом к состоянию, у меня есть проблема с подключением состояния к div, я обновил вопрос сейчас – Touchpad