在来自renderRow
的{{1}} ListView
文件中,我添加了Navigator
,但renderScene
const item = {};
export default class ListItem extends Component{
constructor(props){
super(props);
item = this.props.item;
}
renderScene(route, navigator){
return(
<Text style={{color:'#fff'}}>Test</Text>
<Text style={{color:'#fff'}}>{item.title}</Text>
)
}
render(){
return(
<Navigator
renderScene={this.renderScene}
navigator={this.props.navigator} />
);
}
}
当我把所有内容都放在render()
中时,它运行正常。如果我console.log()
item
renderScene
对象中的 FirebaseAuth auth = FirebaseAuth.getInstance(FirebaseApp.getInstance());
if (auth.getCurrentUser() != null) {
View hview = navigationView.getHeaderView(0);
String personName = auth.getCurrentUser().getDisplayName();
String personEmail = auth.getCurrentUser().getEmail();
String personId = auth.getCurrentUser().getUid();
Uri personPhoto = auth.getCurrentUser().getPhotoUrl();
if (personPhoto != null){
ImageView imgView = (ImageView) hview.findViewById(R.id.header_imageView);
// Download photo and set to image
}
}
对象会记录该项目,但它不会显示任何内容。
答案 0 :(得分:0)
我觉得我在将renderScene
抽象到自己的函数中时遇到了类似的问题,就好像导航器无法处理渲染一样。所有文档演示渲染是内联的。你可以做的是在一个单独的函数中卸载渲染,但仍然将其称为内联,就像这样。
render(){
return(
<Navigator
renderScene={(route, navigator) => this.renderScene(route, navigator)}
navigator={this.props.navigator} />
);
}
答案 1 :(得分:0)
由于您使用的是ES6语法,因此没有自动绑定。您可以使用胖箭头语法并执行以下操作:
renderScene = (route, navigator) => {
return(
<View>
<Text style={{color:'#fff'}}>Test</Text>
<Text style={{color:'#fff'}}>{item.title}</Text>
</View>
);
}