我是react-native框架的初学者。我正在构建一个示例移动应用程序。而且我坚持最基本的步骤。 我试图在点击事件上调用“ getBusinessNews()”函数,该函数将返回一个组件。但是由于某种原因,它没有返回。 我已经仔细检查了组件的路径及其正确性。 甚至显示在函数内部定义的console.log。 我附上了代码,感谢所有帮助。 预先谢谢你。
import React, {Component} from 'react';
import {Text,View,TouchableOpacity} from 'react-native';
import BusinessNews from '../News/BusinessNews';
class categories extends Component{
render(){
return(
<View>
<TouchableOpacity onPress={this.getBusinessNews.bind(this)}>
<Text>Business News</Text>
</TouchableOpacity>
</View>
);
}
getBusinessNews(){
console.log(1);
return(
<BusinessNews />
);
}
export default categories;
答案 0 :(得分:2)
将组件从event handler/listener
返回到渲染将不起作用。
取而代之的是state update
来决定是否渲染组件BusinessNews
。
它应该这样做。
构造函数
constructor() {
this.state = {
showBusiness: false//initially set to false
}
}
获取商业新闻
getBusinessNews() {
this.setState({showBusiness: true})//set to true to show BusinessNews
}
渲染
render() {
render() {
return (
<View>
<TouchableOpacity
onPress={this
.getBusinessNews
.bind(this)}>
{this.state.showBusiness ===true && <BusinessNews/>}//check boolean true
<Text>Business News</Text>
</TouchableOpacity>
</View>
);
}
}
答案 1 :(得分:1)
您可以单击返回组件。由于您只需要在 render()中返回组件。您需要更改逻辑以渲染组件。
您可以在<BusinessNews />
中的某个地方调用render()
来添加组件。