React-Native NavigatorIOS 错误不适用于背景图像
React-Native NavigatorIOS bug not working with background image
NavigatorIOS 似乎在有全屏背景图像作为其兄弟时未显示当前内容。
能否请您告诉我是否有解决方法,我不想将背景图片移动到我的每个组件页面中。
这里是示例代码:
https://rnplay.org/apps/wrntpQ
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
Image,
NavigatorIOS
} = React;
var SampleComponent = React.createClass({
render: function() {
return (
<View style={{
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'transparent'
}}>
<Text style={{color: 'red'}}>Hello</Text>
</View>
);
}
});
AppRegistry.registerComponent('SampleComponent', () => SampleComponent);
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.bgContainer}>
<Image
style={styles.logo}
source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}/>
</View>
<NavigatorIOS
style={styles.navigator}
initialRoute={{
component: SampleComponent,
title: 'My View Title'
}} />
</View>
);
}
});
/*
// It works if you put the following line in line 39
<SampleComponent style={styles.navigator} />
// But it doesn't work when you put the following lines in 39
<NavigatorIOS
style={styles.navigator}
initialRoute={{
component: SampleComponent,
title: 'My View Title'
}} />
*/
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
bgContainer: {
position: 'absolute',
left: 0,
top: 0,
right: 0,
bottom: 0
},
logo: {
flex: 1,
// remove width and height to override fixed static size
width: null,
height: null,
// make the background transparent so you actually see the image
backgroundColor: 'transparent'
},
navigator: {
flex: 1,
backgroundColor: 'transparent'
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
module.exports = SampleApp;
有人告诉我目前不支持此功能。
他们强烈建议您使用 Navigator 而不是 NavigatorIOS(请参阅 comparison docs here 这样您就不会遇到此问题。
NavigatorIOS 没有被积极地开发——它是一个 "Community Responsibility" 因为它基本上没有被 Facebook 和其他核心贡献者使用,并且社区也没有特别有兴趣推动它向前发展(很少有拉取请求) ,因此围绕此构建您的应用程序是不安全的。
NavigatorIOS 似乎在有全屏背景图像作为其兄弟时未显示当前内容。
能否请您告诉我是否有解决方法,我不想将背景图片移动到我的每个组件页面中。
这里是示例代码:
https://rnplay.org/apps/wrntpQ
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
Image,
NavigatorIOS
} = React;
var SampleComponent = React.createClass({
render: function() {
return (
<View style={{
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'transparent'
}}>
<Text style={{color: 'red'}}>Hello</Text>
</View>
);
}
});
AppRegistry.registerComponent('SampleComponent', () => SampleComponent);
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.bgContainer}>
<Image
style={styles.logo}
source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}/>
</View>
<NavigatorIOS
style={styles.navigator}
initialRoute={{
component: SampleComponent,
title: 'My View Title'
}} />
</View>
);
}
});
/*
// It works if you put the following line in line 39
<SampleComponent style={styles.navigator} />
// But it doesn't work when you put the following lines in 39
<NavigatorIOS
style={styles.navigator}
initialRoute={{
component: SampleComponent,
title: 'My View Title'
}} />
*/
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
bgContainer: {
position: 'absolute',
left: 0,
top: 0,
right: 0,
bottom: 0
},
logo: {
flex: 1,
// remove width and height to override fixed static size
width: null,
height: null,
// make the background transparent so you actually see the image
backgroundColor: 'transparent'
},
navigator: {
flex: 1,
backgroundColor: 'transparent'
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
module.exports = SampleApp;
有人告诉我目前不支持此功能。
他们强烈建议您使用 Navigator 而不是 NavigatorIOS(请参阅 comparison docs here 这样您就不会遇到此问题。 NavigatorIOS 没有被积极地开发——它是一个 "Community Responsibility" 因为它基本上没有被 Facebook 和其他核心贡献者使用,并且社区也没有特别有兴趣推动它向前发展(很少有拉取请求) ,因此围绕此构建您的应用程序是不安全的。