2017-01-09 13 views
0

コンポーネントを透明な色を持ち、React-Nativeで作成されたグローバルActivityIndicatorとして使用する機会はありますか?React-NativeでグローバルActivityIndi​​catorとしてコンポーネントを使用する機会はありますか

詳細:

  • 私はUIを更新するためにReduxのストアを使用しています。だから私はストアを更新してActivityIndi​​catorを表示するつもりです。
  • ActivityIndicatorというコンポーネントを作成しました。名前はActIndicatorです。
  • 私はアプリを含むメインのAppコンポーネントを持っています。
  • ActIndicatorおよびAppコンポーネントをラップするRootコンポーネントがあります。

Root部品のrender方法の究極のコードは次のようになります。

render() { 

    if (this.state.showActivityIndicator) { 
     return(
      <ActIndicator> 
       <App /> 
      </ActIndicator> 
     ) 
    } 

    return (</App>) 

} 

私はいくつかの方法を試してみたが、私は成功することはできません。

私の脳は停止していると思います。

ロジックミスがあるかもしれません。私はあなたが子供の頃にアプリケーションを渡すことになっているとは思わない

答えて

0
const withLoadingOverlay = (Component) => class withLoadingOverlayView extends React.Component { props: withLoadingOverlayProps 

    // Indicator view styles loadingOverlay = (style) => (
     <View style={[style, styles.someDefaultStyles]}> 
      <ActivityIndicator color={someColor} size="large" /> 
     </View> ) 

     render() { 
     const { pending, ...passProps } = this.props; 
     const { width, height } = Dimensions.get('window'); 
     return (
      <View style={{ flex: 1 }}> 
      <Component {...passProps} /> 
      {pending && this.loadingOverlay({ width, height })} 
      </View> 
     ); } }; 

私はHOCで容器全体をラップするために使用してReduxのアクションと小道具真の成功に保留中の起動時に設定またはfalseに設定して失敗するので、この小道具は、HOCとインジケータによって消費されるだろうペンディング時のみ表示ingはtrueに設定されています。あなたが接続

export default connect(
    (state) => ({ 
    pending: state.reducer.pending, // pending prop should be here 
    }), 
    (dispatch) => ({ dispatching redux actions }) 
)(withLoadingOverlay(WrappedComponent)); 
0

、私はそれを使用する方法は、より多くのこのようなものです:

render() { 

if (this.state.showActivityIndicator) { 
    return(
     <View> 
     <ActivityIndicator /> 
     <App /> 
     </View> 
    ) 
} 

return (<App />) 

} 

が、おそらく、このようにそれを設定する方が良いだろう。

render() { 
    return (
    <View> 
     <ActivityIndicator animating={this.state.showActivityIndicator} /> 
     <App /> 
    </View> 
) 
} 
+0

でコンポーネントをラップする必要が容器に

@MattAftありがとうございます。明日あなたのコードを試してみます。すべてのコードを書くのは長すぎる行です。私はあなたのような答えが欲しい!実際に私はこの方法で試しましたが、私は間違ったことをしたに違いありません!私がこのようにした後、私は答えを受け入れることができます。 – efkan

+0

@efkan okいいですね、明日お試しになるときにもう質問や問題がある場合は教えてください! –

+0

私はWojtekの答えをその詳細のために受け入れなければなりません。実際にあなたのソリューションとWojtekのソリューションは似ています。 – efkan

関連する問題