我有两个非常简单的类。我所要做的就是从另一个组件调用一个方法,将文本打印到控制台。当用户单击类2中的导航按钮时,它应该调用类1中的_printtest函数,不幸的是,这并没有发生。
类别1
class drawerControl extends Component {
constructor(props) {
super(props);
this._printtest = this._printtest.bind(this);
};
_printtest(){
console.log("Hello World");
}
render() {
return (
<Home
openControlPanel={this.openControlPanel.bind(this)}
functest={this._printtest}>
</Home>
);
}
}类别2
class Home extends Component {
constructor(props){
super(props);
this.callPrint = this.callPrint.bind(this);
}
callPrint(){
this.props.functest()
}
render() {
return (
<TouchableHighlight onPress={this.callPrint} style= {styles.button}>
<Text>Navigate</Text>
</TouchableHighlight>
);
}
}要么我得到一个错误,告诉我"this.props.functest“不是一个函数,要么什么都没有发生。这似乎是非常简单的事情。我能做些什么来解决这个问题呢?
发布于 2017-02-09 11:56:35
我认为问题在于你的props已经是一个函数了。因此,您不需要像this.props.functest()那样对它进行命名。只需简单地调用
<TouchableHighlight onPress={this.props.functest}}>
<Text>Navigate</Text>
</TouchableHighlight>我试着做一个简单的应用程序通过RNPlay的基础上,你的代码和它的工作。https://rnplay.org/apps/2LJnbg
https://stackoverflow.com/questions/42124063
复制相似问题