Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在reactjs中从父函数调用子函数_Javascript_Reactjs_React Component - Fatal编程技术网

Javascript 在reactjs中从父函数调用子函数

Javascript 在reactjs中从父函数调用子函数,javascript,reactjs,react-component,Javascript,Reactjs,React Component,我的父组件 import EditReview from './partials/editReview' class VenueDetails extends Component { constructor(props) { super(props) this.child = React.createRef(); } render() { return ( <div className="place-review-text">

我的父组件

import EditReview from './partials/editReview'

class VenueDetails extends Component {
  constructor(props) {
    super(props)
    this.child = React.createRef();
  }
  render() {
    return (
      <div className="place-review-text">
        <EditReview {...this.props}/>
      </div>
    )
  }
}
class EditReview extends Component {
  onEditClick(review, editIndex) {
    console.log('ppp')
  }

  render() {
    const { handleSubmit, user, pristine, index, commentCrossClick } = this.props
    return (
      <div>
        <Field
          name="content"
          component={renderTextArea}
          className="form-control"
          label="Write your review..."
          rows={2}
        />
      </div>
    )
  }
}

export default EditReview

在解决了所有错误后,React文档使用REF提供了一个示例


我还想知道想要这样做的用例,也许一些上下文可以帮助回答这个问题?

React文档有一个使用REF的例子


我还想知道想要这样做的用例,也许一些上下文可以帮助回答这个问题?

试着这样做:

import EditReview from './partials/editReview'

class VenueDetails extends Component {
  render() {
    return (
      <div className="place-review-text">
        <EditReview ref={Ref => this.child=Ref } {...this.props} />
      </div>
    )
  }
}
import EditReview from./partials/EditReview'
类VenueDetails扩展了组件{
render(){
返回(
this.child=Ref}{…this.props}/>
)
}
}
并将父组件中的函数调用为
this.child.onEditClick(param1,param2)

EDIT1


如果必须使用react 15.x本身执行此操作,则可以在parent中创建函数,并将其作为道具传递给child

尝试如下操作:

import EditReview from './partials/editReview'

class VenueDetails extends Component {
  render() {
    return (
      <div className="place-review-text">
        <EditReview ref={Ref => this.child=Ref } {...this.props} />
      </div>
    )
  }
}
import EditReview from./partials/EditReview'
类VenueDetails扩展了组件{
render(){
返回(
this.child=Ref}{…this.props}/>
)
}
}
并将父组件中的函数调用为
this.child.onEditClick(param1,param2)

EDIT1


如果您必须使用react 15.x本身,您可以做的是在父级中创建函数并将其作为道具传递给子级

为什么不在父级中创建该函数并将其作为道具传递给子级,这似乎是唯一的选项…是的,但onClick处理程序位于父级组件中。。。好的,请稍候,我正在升级,为什么不在父组件中创建该函数并作为道具传递给子组件,这似乎是唯一的选项…是的,但onClick处理程序在父组件中。。。好的,请稍候,我正在升级