首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绑定已通过prop传递给子组件的函数,以便可以在子组件的函数中调用它

如何绑定已通过prop传递给子组件的函数,以便可以在子组件的函数中调用它
EN

Stack Overflow用户
提问于 2016-09-23 04:58:02
回答 2查看 68关注 0票数 0

在下面的代码中,有人可以建议如何访问传递给子QRScan组件的closeModal prop中存储的函数吗?

我尝试过在QRScan的构造函数中使用this.props.closeModal.bind(this),但是当我在_onBarCodeRead函数中调用this.props.closeModal()时,我得到了一个undefined is not an object (evaluating 'this.props.closedModal')错误。

道具肯定会被传递给构造函数,我只是看起来不能正确地绑定函数。任何帮助都非常感谢!

代码语言:javascript
运行
复制
class Test extends React.Component {

constructor(props) {
   super(props);
 }

_test(){
  console.log("test worked")
}

render() {
  return (
    <View>
      <QRScan closeModal={this._test}/>
    </View>
  }
}

子类:

代码语言:javascript
运行
复制
class QRScan extends React.Component {

constructor(props)
{
 super(props)
 console.log(this.props)
 this.props.closeModal.bind(this);
}

render() {
   return (
    <BarcodeScanner
      onBarCodeRead={this._onBarCodeRead}
      width={windowWidth}
      height={windowWidth * cameraAspectRatio}
      style={styles.camera}>
      <View style={styles.rectangleContainer}>
        <View style={styles.rectangle} />
      </View>
    </BarcodeScanner>
  );
 }
 _onBarCodeRead(e) {
   console.log(e);
   Vibration.vibrate();
   this.props.closeModal();
  }
}
EN

Stack Overflow用户

回答已采纳

发布于 2016-09-23 14:54:12

问题实际上是this._onBarCodeRead没有正确绑定。

在子组件的构造函数中,您需要添加以下this._onBarCodeRead = this._onBarCodeRead.bind(this);

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

https://stackoverflow.com/questions/39648753

复制
相关文章

相似问题

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