Как передать дополнительный параметр с определенной функцией проп? - PullRequest
1 голос
/ 16 апреля 2019

Мне нужно объявить функцию для опоры, которая имеет определенный параметр.Компонент Аккордеон от Реакции-Родной-Разборный.Опора для компонента, который я хочу реализовать, - это onChange (indexes), и я хочу передать для него дополнительный параметр 'title'.

Я попытался передать параметр с тем же именем 'indexes ', но переменная' indexes 'не была объявлена, таким образом возвращая ошибку при выполнении.Я не знаю, какой синтаксис для передачи нового параметра.

Передача функции в реквизит без каких-либо параметров работает просто отлично, но мне нужно передать название в качестве параметра функции.

Сам компонент (я ожидал, что реквизиты onChange вызовут updateSections с индексами активного аккордеона и заголовка):

<Accordion
  sections={data}
  activeSections={activeSections}
  renderHeader={this.renderHeader}
  renderContent={this.renderList}
  onChange={this.updateSections(indexes, title)}
  touchableComponent={TouchableOpacity}
/>

Это прекрасно работает:

<Accordion
  sections={data}
  activeSections={activeSections}
  renderHeader={this.renderHeader}
  renderContent={this.renderList}
  onChange={this.updateSections}
  touchableComponent={TouchableOpacity}
/>

Функция для реализации:

updateSections = (activeSections, title) => {
  switch (title) {
   case 'PA':
     this.setState({ activeSectionsPA: activeSections });
     break;
   case 'CA':
     this.setState({ activeSectionsCA: activeSections });
     break;
   default:
     break;
  }
}

Любая помощь будет оценена!Спасибо!

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Используйте функцию стрелки там

<Accordion
  sections={data}
  activeSections={activeSections}
  renderHeader={this.renderHeader}
  renderContent={this.renderList}
  onChange={(indexes) => this.updateSections(indexes, title)} // change this
  touchableComponent={TouchableOpacity}
/>
0 голосов
/ 16 апреля 2019

Я думаю, вам просто нужно поставить () => infront, как:

  onChange={() => this.updateSections(indexes, title)}
...