вызвать две функции внутри события onchange в реакции - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь вызвать две функции с событием onChange для динамического поиска в реакции.в первой функции я устанавливаю состояние для значения, а во второй функции я должен вызвать значение и выполнить функцию.

Я не смог вызвать две функции одновременно.Я не добавляю макет JSON с этим примером кода.

 handleChange(e) {
   this.setState({ value: e.target.value.substr(0, 20) });
}
filterFunction(filteredSections) {
  let search = filteredSections;
  search = filteredSections.filter(somesection => somesection.insidesection && somesection.insidesection.name.toLowerCase().indexOf(this.state.value.toLowerCase()) !== -1);
return search;
    }
 render() {
    const filteredSections = othersection;
return(

<div>
<FormControl
    name="searching"
    placeholder="Searching"
    onChange={e => this.handleChange(e).bind(this)}
    onChange={() => this.filterFunction(filteredSections)}
/>
</div>
<div>
    {filteredSections.map(section =><othersection customization={section} } }
</div>
)
}

ожидаемое событие onchange должно вызывать обе функции.

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

если вам нужен реквизит, вы можете использовать его

<FormControl
    name="searching"
    placeholder="Searching"
    onChange={e => { this.functionOne(e); this.props.functionTwo(e)}
/>
0 голосов
/ 04 января 2019

Вы можете назначить обработчик на onChange только один раз.Когда вы используете несколько таких назначений, второе будет перезаписывать первое.

Вам придется либо создать обработчик, который вызывает обе функции, либо использовать анонимную функцию:

twoCalls = e => {
  this.functionOne(e)
  this.functionTwo()
}
.
.
.
<FormControl
    name="searching"
    placeholder="Searching"
    onChange={this.twoCalls}
/>

Или ...

<FormControl
    name="searching"
    placeholder="Searching"
    onChange={e => { this.functionOne(e); this.functionTwo()}
/>
...