为了账号安全,请及时绑定邮箱和手机立即绑定

在反应中调用作为道具传递的方法

在反应中调用作为道具传递的方法

牛魔王的故事 2022-12-22 15:49:28
我的父元素中有方法,di 将其作为道具传递;像这样:<NavBar retrieveList={this.retrieveList}/>在我的子组件中,我无法从另一个方法体调用此方法。handleCloseModal () {    window.$('#newHireModal').modal('hide');   /* this is working */    console.log(this.props.retrieveList);     /* it gives method body, just to be sure props is coming here */    this.props.retrieveList;   /*it gives "Expected an assignment or function call..." */    this.props.retrieveList();   /*it gives "this.props.retrieveList is not a function" */    return this.props.retrieveList;   /*it does nothing. no working, no error. */  }顺便说一句,我有构造函数和绑定;constructor(props) {    super(props);    this.handleCloseModal = this.handleCloseModal.bind(this);retrieveList() {    StaffDataService.getAll()      .then(response => {        this.setState({          staffWithBasics: response.data,          filteredItems: response.data,        });      })      .catch(e => {        console.log(e);      });  }这段代码有什么问题,我该如何运行这个父方法?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

发生这种情况是因为this接收委托的组件中的this与函数中使用的不同。向下传递时,您必须绑定它。

<NavBar retrieveList={this.retrieveList.bind(this)}/>

然后你可以在你的函数体中调用它,如下所示。

this.props.retrieveList();


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信