react 父组件向子组件传递的回调函数,子组件却接收到的是个数组,为什么啊

问题描述

图片描述

问题出现的环境背景及自己尝试过哪些方法

试过箭头函数还是不行

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
父组件

handleSubmitComment(a) {
  // console.log(a)
  this.state.lists.push(a)
  this.setState({
    lists: this.state.lists
  })
}


 <ComInput>
   onSubmit = {this.handleSubmitComment.bind(this)}
 </ComInput>

子组件

handleSubmit(){
    console.log(this)
    if(this.props.children[1]){
        const {username,content} = this.state
        this.props.children[1]({username,content})
    }
    this.setState({
        content:'',
        username:''
    })
}
<p>
   <button onClick={this.handleSubmit.bind(this)}>评论</button>
</p>

你期待的结果是什么?实际看到的错误信息又是什么?

不应该是 this.props.onSubmit()就能获取么,怎么会出现数组?

阅读 2.8k
1 个回答
 包在jsx里面肯定是以children往下传,建议题主补一下React基础
 
 <ComInput>
   onSubmit = {this.handleSubmitComment.bind(this)}
 </ComInput>
 
改成下面可达到你需要的

 <ComInput onSubmit={this.handleSubmitComment.bind(this)} />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题