首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React Native -无法从其他组件调用方法

React Native -无法从其他组件调用方法
EN

Stack Overflow用户
提问于 2017-02-09 05:35:30
回答 4查看 1.4K关注 0票数 0

我有两个非常简单的类。我所要做的就是从另一个组件调用一个方法,将文本打印到控制台。当用户单击类2中的导航按钮时,它应该调用类1中的_printtest函数,不幸的是,这并没有发生。

类别1

代码语言:javascript
复制
 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

代码语言:javascript
复制
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“不是一个函数,要么什么都没有发生。这似乎是非常简单的事情。我能做些什么来解决这个问题呢?

EN

回答 4

Stack Overflow用户

发布于 2017-02-09 06:19:54

我将您的代码粘贴到一个全新的原生项目中,并在我的Android手机上对其进行了测试。

如果您需要为自定义组件使用CamelCase,afaik:DrawerControl

  • The DrawerControl类丢失问题:调用console.log()会打印到iOS控制台。您需要在终端中运行react-native log-ios才能查看输出,否则它将看起来好像什么都没有发生。

你提到的this.props.functest不是一个函数的错误可能会以多种方式发生,但如果你做了我列出的更改,它应该不会发生在你在这里发布的代码中。

票数 0
EN

Stack Overflow用户

发布于 2017-02-09 11:56:35

我认为问题在于你的props已经是一个函数了。因此,您不需要像this.props.functest()那样对它进行命名。只需简单地调用

代码语言:javascript
复制
<TouchableHighlight onPress={this.props.functest}}>
    <Text>Navigate</Text>
</TouchableHighlight>

我试着做一个简单的应用程序通过RNPlay的基础上,你的代码和它的工作。https://rnplay.org/apps/2LJnbg

票数 0
EN

Stack Overflow用户

发布于 2017-02-09 13:25:10

在你的第一类中,改变如下。

代码语言:javascript
复制
<Home 
  openControlPanel={this.openControlPanel.bind(this)}
  functest={this._printtest()}>
</Home>

您需要调用_printtest函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42124063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档