リストビューからデータを保存する正しい方法は何ですか?

モンジョン

クエリを実行して結果をリストビューに表示するSearchPageコンポーネントがあります。次に、ユーザーはそれらをタップして、必要な結果を選択します。これにより、それらがSearchResultsコンポーネントの配列に保存されます。

以下のコードに見られるように、結果が返されるときに 'displayWords'メソッドが呼び出されます。スタック上の新しいビューSearchResultsをプッシュし、右ボタンを「保存」に設定し、データを保存するために呼び出される関数をアタッチします。

    class SearchPage extends Component { 

    displayWords(words){ 
      this.props.navigator.push({ 
        title: 'Results'、
        component:SearchResults、
        rightButtonTitle: 'Save'、
        onRightButtonPress:()=> {this.props.navigator.pop( ); 
                                   this.props.save()}、
        passProps:{リスト:単語} 
      }); 
      this.setState({isLoading:false、message: ''}); 
   }
   

だからここに質問があります、SearchResultsコンポーネントの配列からコールバックにアイテムを取得するにはどうすればよいですか?またはSearchPageに?それとも私が従うべき別のパターンがありますか?

フィリップフォンヴァイタースハウゼン

興味深い質問です!

哲学的に言えば、ナビゲーターとナビゲーションスタックの概念全体がReact-yデータフローを壊します。SearchResultsコンポーネントをのサブコンポーネントとして単純にレンダリングできる場合はSearchPage、選択した検索結果をSearchPage状態の一部にして、それらをSearchPage小道具として渡すだけなので。SearchPageまたSearchResults、検索結果が切り替えられたときに通知するコールバックを取得します

残念ながら、ナビゲーターがそのままの状態で、状態を複製する必要があります。

    displayWords(words) {
      this.props.navigator.push({
        title: 'Results',
        component: SearchResults,
        rightButtonTitle: 'Save',
        onRightButtonPress: () => {this.props.navigator.pop();
                                   this.props.save()},
        passProps: {listings: words, onWordToggle: this.onWordToggle}
      });
      this.setState({ isLoading: false , message: '' }); 
   }

   onWordToggle(word) {
     // add or remove 'word' from e.g. this._selectedWords; no need for
     // this.state because re-rendering not required
   }

whileSearchResultsは、選択された単語のリストをそのに維持し、単語が追加または削除されるたびにthis.state通知するだけthis.props.onWordToggleです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Firebaseからリストにデータを入力する正しい方法は何ですか?

分類Dev

リストビューから正しいデータを選択するAndroidは余分に置く

分類Dev

Elasticsearchにデータを保存する正しい方法は何ですか?

分類Dev

ビュー階層からサブビューを削除して削除する正しい方法は何ですか?

分類Dev

Windowsストアアプリ開発で複雑なユーザーデータを保存する*正しい*方法は何ですか?

分類Dev

ストリームから降伏する正しい方法は何ですか?

分類Dev

Rustで複数のリンクリストを作成し、それらの間でデータを移動する正しい方法は何ですか?

分類Dev

データベースを削除する正しい方法は何ですか?

分類Dev

リストビューからデータを取得する方法

分類Dev

Linq-IQueryable式のリストからユーザーを除外する-正しい方法は何ですか?

分類Dev

JOINがない場合、ドキュメントデータベースのデータを処理する正しい方法は何ですか?

分類Dev

リストビューからデータを移動してデータベースに挿入するにはどうすればよいですか?

分類Dev

テーブルビューを操作する正しい方法は何ですか?

分類Dev

さまざまなマイクロサービスからデータを収集する正しい方法は何ですか?

分類Dev

RailsアプリをHerokuにプッシュする場合、config / database.ymlでデータベースを構成する正しい方法は何ですか?

分類Dev

jsonからデータを渡し、リストビューに表示する方法

分類Dev

MySQLにリストを保存する正しい方法は何ですか?

分類Dev

コントローラから(データベースに)オブジェクトを作成する正しい方法は何ですか?

分類Dev

Swiftを使用してネストされたJSONデータを解析する正しい方法は何ですか?

分類Dev

データメンバーを初期化するリストの正しい用語は何ですか?

分類Dev

OSのインストール日を決定するディストリビューションにとらわれない方法は何ですか?

分類Dev

AMDから直接独自のATICatalystビデオドライバ(fglrx)をインストールする正しい方法は何ですか?

分類Dev

AMDから直接独自のATICatalystビデオドライバ(fglrx)をインストールする正しい方法は何ですか?

分類Dev

リスト内のParse.comからデータを取得し、リストビューに適用するにはどうすればよいですか?

分類Dev

データベースクエリからの可能なnull値を処理する正しい/慣用的な方法は何ですか?

分類Dev

ドキュメントディレクトリからLottieアニメーションを読み取る正しい方法は何ですか

分類Dev

graphql内にデータをネストする正しい方法は何ですか?

分類Dev

データベースのgolangに投稿データ(整数値と文字列値を含む)を保存する正しい方法は何ですか?

分類Dev

剣道のデータソースからの新しいデータでリストビューを更新する方法

Related 関連記事

  1. 1

    Firebaseからリストにデータを入力する正しい方法は何ですか?

  2. 2

    リストビューから正しいデータを選択するAndroidは余分に置く

  3. 3

    Elasticsearchにデータを保存する正しい方法は何ですか?

  4. 4

    ビュー階層からサブビューを削除して削除する正しい方法は何ですか?

  5. 5

    Windowsストアアプリ開発で複雑なユーザーデータを保存する*正しい*方法は何ですか?

  6. 6

    ストリームから降伏する正しい方法は何ですか?

  7. 7

    Rustで複数のリンクリストを作成し、それらの間でデータを移動する正しい方法は何ですか?

  8. 8

    データベースを削除する正しい方法は何ですか?

  9. 9

    リストビューからデータを取得する方法

  10. 10

    Linq-IQueryable式のリストからユーザーを除外する-正しい方法は何ですか?

  11. 11

    JOINがない場合、ドキュメントデータベースのデータを処理する正しい方法は何ですか?

  12. 12

    リストビューからデータを移動してデータベースに挿入するにはどうすればよいですか?

  13. 13

    テーブルビューを操作する正しい方法は何ですか?

  14. 14

    さまざまなマイクロサービスからデータを収集する正しい方法は何ですか?

  15. 15

    RailsアプリをHerokuにプッシュする場合、config / database.ymlでデータベースを構成する正しい方法は何ですか?

  16. 16

    jsonからデータを渡し、リストビューに表示する方法

  17. 17

    MySQLにリストを保存する正しい方法は何ですか?

  18. 18

    コントローラから(データベースに)オブジェクトを作成する正しい方法は何ですか?

  19. 19

    Swiftを使用してネストされたJSONデータを解析する正しい方法は何ですか?

  20. 20

    データメンバーを初期化するリストの正しい用語は何ですか?

  21. 21

    OSのインストール日を決定するディストリビューションにとらわれない方法は何ですか?

  22. 22

    AMDから直接独自のATICatalystビデオドライバ(fglrx)をインストールする正しい方法は何ですか?

  23. 23

    AMDから直接独自のATICatalystビデオドライバ(fglrx)をインストールする正しい方法は何ですか?

  24. 24

    リスト内のParse.comからデータを取得し、リストビューに適用するにはどうすればよいですか?

  25. 25

    データベースクエリからの可能なnull値を処理する正しい/慣用的な方法は何ですか?

  26. 26

    ドキュメントディレクトリからLottieアニメーションを読み取る正しい方法は何ですか

  27. 27

    graphql内にデータをネストする正しい方法は何ですか?

  28. 28

    データベースのgolangに投稿データ(整数値と文字列値を含む)を保存する正しい方法は何ですか?

  29. 29

    剣道のデータソースからの新しいデータでリストビューを更新する方法

ホットタグ

アーカイブ