2016-09-01 5 views
0

私はビューで簡単な検索を実装しようとしています。reactnativeで簡単な検索を実装する

私は、ユーザーが検索語を入力できるTextInputコンポーネントを持っています。

TextInputは、2秒待ってからテキスト用語をAPIに送信する関数によって処理されます。ここで

は、APIは、ハンドラのfonctionである:ここで

performSearch(text){ 
    var typingTimer = null; 

    if(typingTimer){ 
     typingTimer = null; 
    } 
    typingTimer = setTimeout(() => { 
     this.setState({ 
     search: text 
     }); 
     console.log(this.state.search); 
    }, 2000); 
    } 

は、私が持っているのが大好きだ動作です:ユーザーが最後のキーを打つた後、ユーザタイプの何かのAPI呼び出しがわずか2秒で行われた場合。ユーザーが2秒前に別のキーを押すと、TextInputの最後の値だけを送信する必要があります。

残念ながら、私は今のところそれを達成することができます。どんな助けも高く評価されます。 乾杯

+0

なぜあなたはちょうどこのテキスト入力と送信ボタンを持っていけない...私はスーパー混乱していますが - これは、先行入力または何かをすることになっていますか? – Maxwelll

+0

hi。実際、私はtextInputの下にListViewを持っています。目標は、ユーザーがボタンを押すことなく、textInput内に入力された内容に従ってリストを更新することです。 – user1445685

+0

もし私が決して条件に入ることはないと思います。 performSearch()関数を呼び出すと、常に "typingTimer"変数がnullです。 –

答えて

1

これは試してみてください。

performSearch(text){ 
    clearTimeout(this.typingTimer);// this will cancel the previous timer 

    this.typingTimer = setTimeout(() => { 
     this.setState({ 
     search: text 
     }); 
    }, 2000); 
    } 
+0

素晴らしいレスポンス。どうもありがとう – user1445685

関連する問題