React.js: функция, переданная от родительского компонента к дочернему компоненту, не вызывается

Я новичок и пытаюсь изучить React. У меня есть родительский компонент с логическим значением в его состоянии, которое я изменяю с помощью функции, определенной в его классе, называемой rerender (). Я передаю эту функцию в реквизиты дочернего компонента следующим образом:

<Todolist
  color={color}
  name={name}
  items={items}
  addListItem={this.addListItem}
  rerender={() => this.rerender}
/>

У меня есть console.log в этой функции, чтобы проверить, вызывается ли он. Я называю это в дочернем компоненте следующим образом:

this.props.rerender();

Я уверен, что событие onChange, которое вызывает this.props.rerender() в дочернем компоненте, запускается, так каковы возможные причины того, почему он не вызывается?


person Jasper Huang    schedule 11.06.2020    source источник


Ответы (1)


это не сработает, поэтому функция не вызывается, 2 варианта:

 rerender={() => this.rerender()}

or

 rerender={this.rerender}

последний получает любые аргументы, переданные ему, но первый не получит никаких аргументов.

Вам может потребоваться bind this.renderer, если он не определен как стрелочная функция.

person StackedQ    schedule 11.06.2020