在reactjs中从父级调用子函数
call child function from parent in reactjs
我的父组件
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
我需要从父组件调用 onEditClick
。我尝试了 但没有用。
请帮助我
编辑
升级后我得到这个
Error in ./~/react-dom/lib/ReactServerRendering.js
Module not found: 'react/lib/React' in /home/user/ashish/LTC/lovethesecities-frontend/node_modules/react-dom/lib
解决所有错误后call child function from parent in react 16
React 文档有一个使用 refs 的例子
https://reactjs.org/docs/refs-and-the-dom.html
我也想知道想要这样做的用例,也许一些上下文可以帮助回答?
尝试这样做:
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>
)
}
}
并将父组件中的函数调用为this.child.onEditClick(param1,param2)
EDIT1:
如果你必须用 react 15.x 本身来做,你可以做的是在 parent 中创建函数并将其作为 prop 传递给 child
我的父组件
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
我需要从父组件调用 onEditClick
。我尝试了
请帮助我
编辑
升级后我得到这个
Error in ./~/react-dom/lib/ReactServerRendering.js
Module not found: 'react/lib/React' in /home/user/ashish/LTC/lovethesecities-frontend/node_modules/react-dom/lib
解决所有错误后call child function from parent in react 16
React 文档有一个使用 refs 的例子
https://reactjs.org/docs/refs-and-the-dom.html
我也想知道想要这样做的用例,也许一些上下文可以帮助回答?
尝试这样做:
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>
)
}
}
并将父组件中的函数调用为this.child.onEditClick(param1,param2)
EDIT1:
如果你必须用 react 15.x 本身来做,你可以做的是在 parent 中创建函数并将其作为 prop 传递给 child