2017-03-10 5 views
0

ProgressViewIOSを私のアプリケーションで動かすと、ProgressBarAndroidが追加されました。しかし、私は私が取り除くことができない奇妙なエラーを取得しています。エラーが表示され、私のコードで気づくでしょう - 私はReact.Proptypesを使用していません。私はアンドロイドエミュレータで進行中の進捗バーを参照してください。私の唯一の考えはおそらくI'm the third party caseで、警告メッセージにリンクされていますが、私はどのように見えません。任意の助けRN - ProgressBarAndroid:React.PropTypesを `indeterminate`プロップのために手作業で呼び出す

enter image description here

import React, { Component } from 'react'; 
import { ProgressViewIOS, ProgressBarAndroid, Platform } from 'react-native'; 
import { colors } from '~/utils/styles' 

export default class ProgressBar extends Component { 

    constructor(props){ 
    super(props)  
    this.state = { 
     start: props.start || 0, 
     distance: props.distance, 
    }; 
    } 

    componentDidMount(){ 
    setTimeout(()=>{ 
     this.updateProgress() 
    }, 100) 
    } 

    updateProgress =() => { 
    var start = this.state.start + 0.01; 
    this.setState({ start }); 
    if(start < this.state.distance){ 
     requestAnimationFrame(() => this.updateProgress()); 
    }  
    } 

    componentWillUnmount(){ 
    clearTimeout(this.updateProgress) 
    } 

    render() { 
     if(Platform.OS === 'ios'){ 
     return (
      <ProgressViewIOS 
       progress={this.state.start} 
       style={{height: 3}} 
       progressViewStyle={'bar'} 
       progressTintColor={this.props.progressTintColor} 
      /> 
     ) 
     } 

     if(Platform.OS === 'android'){ 
     return (
      <ProgressBarAndroid 
       indeterminate={false} 
       styleAttr="Horizontal" 
       color={this.props.progressTintColor || colors.defaultBlue} 
       progress={this.state.start} 
       style={{height: 5}} 
      /> 
     ) 
     } 
     return null 
    } 
} 

ありがとう!

答えて

0

警告はindeterminate小道具ProgressBarAndroidの由来です。 sourceに探し

、それがその後、ReactPropTypes.bool関数に渡される「secret」最後の引数に渡していなかったindeterminateカスタムpropTypeに不平を言っています。 PRを待っている間

はネイティブ反応し、次の方法でそれを修正することができます:

  1. を開き、次のファイル:

    PROJECT_DIR/node_modules /反応し、ネイティブ/ライブラリ/コンポーネント/ ProgressBarAndroidを/ProgressBarAndroid.android.js

  2. 機能var indeterminateType = function(props, propName, componentName)を探します。

  3. spread operator...rest)を追加しますので、 "秘密" の最後の引数が渡されます:

var indeterminateType = function(props, propName, componentName, ...rest) {

return ReactPropTypes.bool(props, propName, componentName, ...rest) || checker();

+0

感謝を!あなたは正しい、私はPRのリストでそれを参照してください。 – Turnipdabeets

関連する問題