React Native 原生 iOS 组件为空白
React Native native iOS component is blank
我创建了一个新项目并遵循了本机 iOS UI 组件 (https://facebook.github.io/react-native/docs/native-components-ios.html) 的教程。但是,当我编译 运行 我的代码时,它只是一个空白屏幕。我没有看到任何错误。
我知道正在调用我的原生 view
方法,但我不确定为什么 MKMapView 没有被渲染。
index.ios.js
:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
const MapView = require('./MapView.ios');
export default class NativeTest extends Component {
render() {
return (
<View style={styles.container}>
<MapView />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
// backgroundColor: 'blue',
},
});
AppRegistry.registerComponent('NativeTest', () => NativeTest);
MapView.ios.js
:
// @flow
import { requireNativeComponent } from 'react-native';
module.exports = requireNativeComponent('RCTMapView');
RCTMapViewManager.m
:
// RCTMapViewManager.m
#import <MapKit/MapKit.h>
#import "RCTViewManager.h"
@interface RCTMapViewManager : RCTViewManager
@end
@implementation RCTMapViewManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[MKMapView alloc] init];
}
@end
如何让返回的 UIView
在我的 React Native 应用程序中呈现?
我通过从容器中删除 alignItems
和 justifyContent
样式并向 MapView
添加 flex: 1
样式来修复它。
我创建了一个新项目并遵循了本机 iOS UI 组件 (https://facebook.github.io/react-native/docs/native-components-ios.html) 的教程。但是,当我编译 运行 我的代码时,它只是一个空白屏幕。我没有看到任何错误。
我知道正在调用我的原生 view
方法,但我不确定为什么 MKMapView 没有被渲染。
index.ios.js
:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
const MapView = require('./MapView.ios');
export default class NativeTest extends Component {
render() {
return (
<View style={styles.container}>
<MapView />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
// backgroundColor: 'blue',
},
});
AppRegistry.registerComponent('NativeTest', () => NativeTest);
MapView.ios.js
:
// @flow
import { requireNativeComponent } from 'react-native';
module.exports = requireNativeComponent('RCTMapView');
RCTMapViewManager.m
:
// RCTMapViewManager.m
#import <MapKit/MapKit.h>
#import "RCTViewManager.h"
@interface RCTMapViewManager : RCTViewManager
@end
@implementation RCTMapViewManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[MKMapView alloc] init];
}
@end
如何让返回的 UIView
在我的 React Native 应用程序中呈现?
我通过从容器中删除 alignItems
和 justifyContent
样式并向 MapView
添加 flex: 1
样式来修复它。