私は、その場でAPI呼び出しを行うための検索入力を持っています。私はサーバコールの量を減らすためにデバウンスを実装したいと思います。反応内の検索入力にdebounceを使用する
_debouncedSearch() {
debounce(this.props.fetchRoutes(this.state.searchText), 1000);
}
_updateResults(searchText) {
this.setState({searchText});
this._debouncedSearch();
}
私はdebouncedSearch
を1秒ごとに期待しています。しかしそれはまだオンザフライで呼ばれています。エラーを投げる:
Uncaught TypeError: Expected a function at debounce (lodash.js?3387:10334)
Uncaught Error: A cross-origin error was thrown. React doesn't have access to the actual error object in development.
私はこの質問がたくさんの周りに尋ねられる必要がありますが、解決策のどれも私のために働かないように感じるように感じます。誰かが私にここでの問題がどういうものなのかを説明できましたか?私はデバウンスが単なるsetTimeOutだと思った。
おかげ
debounceは関数を引数として期待していますが、 'this.props.fetchRoutes(this.state.searchText)'はおそらくvoidを返すか、関数ではないものを返します。代わりに関数をデバウンスしようとします。 '()=> this.props.fetchRoutes(this.state.searchText)'または 'function(){this.props.fetchRoutes(this.state.searchText)} 'を使用します。 P.S. :debounceは単なるsetTimeoutではありません – skornous