@WapGeaR
Программист

React — как реализовать вызов родительской функции?

Возник вопрос. Никак не могу добиться его работоспособности

У меня есть 2 компонента

Parent Component:
<Children 
  info={this.props.info}
  hire={(id) => () => {console.log('testing')}}
/>


И Children Component:
<button onClick={this.handleClick(), this.props.hire(id)} }>Bla</button>


Но данная конструкция не работает (не отправляется запрос к props.hire, если действия в онлклике поместить в function().bind(this); - тоже не вариант, перестают работать оба вызова, если вызывать this.props непосредственно в handleClick() { } то, тоже никакой реакции.
Кто-нибудь сталкивался с таким? Есть решение?

Дополняю код оригиналом.

Вот Parent:
{this.props.workers && this.props.workers.map( (worker) => {
            return (<div className="large-4 column"><Worker
            info={worker}
            selected={false}
            hire={(id) => () => {console.log('and here ' + id)}}
            /></div>);
          })}


А вот как я вызываю это дело в child'e

<div style={{cursor: 'pointer'}} onClick={function bla() {this.handleColor(); hire(5); console.log('function');}.bind(this)}>
  • Вопрос задан
  • 1972 просмотра
Решения вопроса 1
Laiff
@Laiff
Front-end developer
Формально получается что у вас один уровень вложенности функций лишний, есть есть ожидание что при вызове hire(5) должно что-то упасть в консоль, то
(id) => {console.log('and here ' + id)
либо
this.handleColor(); 
hire(5)(); 
console.log('function');

Нужно использовать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
В Parent все верно, а в Children можно так сделать:
В render: onClick={this.onClick.bind(this)}

и такой метод:
onClick () {
    this.props.hire();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы