2017-07-06 4 views
1

バックスペースのコールロードを削除するたびにコールする方法。私はすべての入力変更メソッドの呼び出しメソッドをフェッチし、データを取得するときにselect.Asyncコントロールを使用していますが、バックスペースを押すと最初にそのロードオプションメソッドが呼び出されたが、ロードオプションメソッドを呼び出すことができません。ユーザーのメソッド呼び出しを取得loadオプションで上記のコードでreact-select-plus +すべてのバックスペースコールロードオプションのメソッドを削除します。

getUsers = (input) => { 
 
console.log(input); 
 
if (!input) { 
 
return Promise.resolve({ options: [] }); 
 
} 
 
if (input.length > 2) { 
 
const newstate = this.state; 
 
newstate.loadingtext = 'Searching...'; 
 
this.setState({ newstate }); 
 
const searchLocation = Object.assign({}, cookie.load('cLocation')); 
 
searchLocation.searchText = input; 
 
searchLocation.isBusiness = false; 
 
console.log(input.toString().length); 
 
return fetch(sourceName.searchNavbar, apiUrl.locationAndBusiness, 
 
searchLocation) 
 
.then(json => ({ options: json.data })); 
 
} 
 
return null; 
 
}
<Select.Async 
 
onChange={this.onChange} 
 
valueKey="placeID" 
 
filterOptions={this.filterOptions} 
 
labelKey="cityState" 
 
loadOptions={this.getUsers} 
 
onInputChange={inp => this.onInputChange(inp)} 
 
onBlur={this.onBlur} 
 
onInputKeyDown={inp => this.onInputKeyDown(inp)} 
 
onFocus={this.onFocousSearch} 
 
value={this.state.value} 
 
searchPromptText="Please enter 3 or more characters" 
 
loadingPlaceholder={this.state.loadingtext} 
 
noResultsText="No results found" 
 
options={this.state.options} 
 
placeholder={this.state.placeholdervalue} 
 
autoBlur 
 

 
/>

。私のget Userメソッドは次のとおりです:

私は最初のスペースをクリックしてユーザーメソッド呼び出しを取得しますが、2回目にはスペースを押してからget userメソッドを呼び出さないようにします。すべてのバックスペースを呼び出す方法は、このメソッドを呼び出します。

答えて

1

私の自己反応選択プラスプラグインでキャッシュプロパティを使用して解決しました。このキャッシュ= {false}のように偽を与える。毎回getuser()メソッドを呼び出します。

関連する問題