2017-07-27 6 views
1

Ich versuche, eine Suche in reagieren mit lodash debounce entprellen.lodash.debounce Suche in reagieren js

Aber wenn jemals seinen Lauf Ich erhalte einen Typfehler

TypeError: Cannot read property 'debounce' of undefined

ich versucht habe es sich um den Code zu bewegen, aber kann nicht verstehen, warum es nicht

I arbeitet begann durch den Import es

import { _, debounce } from 'lodash'

ich habe eine Eingabe wie folgt

<input 
    type="text" 
    value={this.state.query} 
    onChange={(e) => {this.updateQuery(e.target.value)}} 
    placeholder="Search by title or author" 
/> 

Verbunden mit dieser Funktion

updateQuery = (query) => { 
    _.debounce(() => query(this.setState({ query }), 500)) 
    this.onBookSearch(query) 
} 

Versteht jemand, warum dies?

+0

Klingt, als hättest du 'lodash' nicht in deinen node_modules. Hast du "npm install --save lodash" vergessen? –

+0

Hallo, ja, ich habe es. Danke für das Kontrollieren. Die Lösung unten funktioniert –

Antwort

3

Ich denke, Ihr Import ist das Problem. Sie wollen wahrscheinlich die _ als Standard importieren:

import _, {debounce} from 'lodash'; 

Auch sind Sie nicht die extrahierte Funktion:

updateQuery = (query) => { 
    debounce(() => query(this.setState({ query }), 500)) 
    this.onBookSearch(query) 
} 

Da Sie {debounce} im Import sind Extrahieren Sie es direkt nutzen können.

+0

Danke, das hat perfekt geklappt! –