ホーム>source

親からリフレッシュをプルダウンするときに子コンポーネントを再レンダリングしようとしていますが、その方法がわかりません。これが私のコードに現在あるものです。

親から:

<前>ウィズウィズ

子から(TaskListing):

<前>ウィズウィズ

上記の私のコードに基づいて、更新コントロールは親ビューからですが、リロードしたい関数は子ビューからです。子から関数をトリガーし、親に戻って更新するにはどうすればよいですか?

OnRefresh = () => { this.setState({refresh: true}); // call function loadTaskListing() from child component this.setState({refresh: false}); } render() { return ( <View> <ScrollView refreshControl={<RefreshControl refreshing={this.state.refresh} onRefresh={this.OnRefresh} />}> <TaskListing navigation={this.props.navigation} /> </ScrollView> </View> ) }
あなたの答え
  • 解決した方法 # 1

    あなたは ref を使うことができます  親の子のメソッドを呼び出す。

    <前>ウィズウィズ

    OnRefresh = () => { this.setState({refresh: true}); // call method of child component using ref this.taskListRef.loadTaskListing(); } refreshDone =()=>{ this.setState({refresh: false}); } render() { return ( <View> <ScrollView refreshControl={<RefreshControl refreshing={this.state.refresh} onRefresh={this.OnRefresh} />}> <TaskListing ref={instance=>this.taskListRef = instance} // ref assigning navigation={this.props.navigation} refreshDone={this.refreshDone} /> </ScrollView> </View> ) } を呼び出す  リフレッシュを止めたい時

    this.props.refreshDone()

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ algorithm - 特定の値のセットのすべての順列を一覧表示する