2016-12-20 60 views
2

完整的錯誤消息:沒有propType原生propType - 如果你沒有改變這個支撐自己

「 ‘BambuserPlayer’沒有propType對本地支柱本地String類型的‘RCTImageView.loadingIndicator.src’

如果你沒有改變這支撐你的自我,這通常意味着你的本地代碼和JavaScript代碼是不同步的。更新都應該使問題消失。 「

我試圖做一個從React-native橋接到Android中的視圖。我試圖按照文檔here中的說明操作,但它一直給我提供了錯誤。

'use strict'; 

import { PropTypes } from 'react'; 
import { requireNativeComponent, View } from 'react-native'; 

var iface = { 
    name: 'BambuserPlayer', 
    propTypes: { 
    resourceUri: PropTypes.string, 
    ...View.propTypes // include the default view properties 
    }, 
}; 

module.exports = requireNativeComponent('RCTImageView', iface); 

BambuserPlayer.java

public class BambuserPlayer extends View { 

    private String resourceURI; 
    private String applicationID; 
    private SurfaceViewWithAutoAR mSurfaceViewWithAutoAr; 
    private BroadcastPlayer.Observer mObserver; 
    private BroadcastPlayer mBroadcastPlayer; 


    public BambuserPlayer(Context context) { 
     super(context); 

     this.resourceURI = "sdfsdf8"; 
     this.applicationID = "sdffsdsdfsdfA"; 

     mSurfaceViewWithAutoAr = new SurfaceViewWithAutoAR(context); 

     mObserver = new BroadcastPlayer.Observer() { 
      @Override 
      public void onStateChange(PlayerState playerState) { 
       Log.i("Broadcast Observer", "playerstate has changed and is now " + playerState); 
      } 

      @Override 
      public void onBroadcastLoaded(boolean b, int i, int i1) { 
       Log.i("Broadcast Observer", "Video is now loaded. Live is " + b); 
      } 
     }; 

     mBroadcastPlayer = new BroadcastPlayer(context, resourceURI, applicationID, mSurfaceViewWithAutoAr, mObserver); 

    } 

    public void setResourceURI(String resourceURI) { 
     this.resourceURI = resourceURI; 
    } 
} 

BambuserPlayerManager.java:

public class BambuserPlayerManager extends SimpleViewManager<BambuserPlayer> { 

    public static final String REACT_CLASS = "BambuserPlayer"; 

    @Override 
    public String getName() { 
     return REACT_CLASS; 
    } 

    @Override 
    protected BambuserPlayer createViewInstance(ThemedReactContext reactContext) { 
     return new BambuserPlayer(reactContext); 
    } 

    @ReactProp(name = "src") 
    public void setResourceURI(BambuserPlayer view, @Nullable String resourceURI) { 
     view.setResourceURI(resourceURI); 
    } 
} 

MainApplication.java:

public class MainApplication extends Application implements ReactApplication { 

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 
    @Override 
    protected boolean getUseDeveloperSupport() { 
     return BuildConfig.DEBUG; 
    } 

    @Override 
    protected List<ReactPackage> getPackages() { 
     return Arrays.<ReactPackage>asList(
      new MainReactPackage(), 
      new BambuserBroadcasterPackage() 
    ); 
    } 
    }; 

    @Override 
    public ReactNativeHost getReactNativeHost() { 
     return mReactNativeHost; 
    } 
} 
當試圖要求我BambuserPlayer.js出現的錯誤

包。 JSON:

{ 
    "name": "Sidecourtnative", 
    "version": "6.9.0", 
    "private": true, 
    "scripts": { 
    "start": "node node_modules/react-native/local-cli/cli.js start", 
    "test": "jest" 
    }, 
    "dependencies": { 
    "firebase": "^3.6.1", 
    "lodash": "^4.17.2", 
    "react": "15.3.2", 
    "react-native": "0.37.0" 
    }, 
    "jest": { 
    "preset": "jest-react-native" 
    }, 
    "devDependencies": { 
    "babel-jest": "17.0.2", 
    "babel-preset-react-native": "1.9.0", 
    "flow-bin": "^0.35.0", 
    "jest": "17.0.2", 
    "jest-react-native": "17.0.2", 
    "react-test-renderer": "15.3.2", 
    "whatwg-fetch": "1.1.0" 
    } 
} 

我並沒有改變道具「RCTImageView.loadingIndicator.src」: 我嘗試更新反應原生0.39,但這樣做沒有幫助,我已經與運行NPM開始嘗試這樣做 - 重置緩存並重新安裝所有節點模塊。

任何幫助非常感謝!

回答

1

而不是

requireNativeComponent('RCTImageView', ...) 

你想

requireNativeComponent('BambuserPlayer', ...)