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開始嘗試這樣做 - 重置緩存並重新安裝所有節點模塊。
任何幫助非常感謝!