我没有找this method,因为我不会传递任何arg。
我需要调用父函数,不带传入任何参数。
家长(es6):
foo(){
...
console.log("i was called");
}
<Child callFoo={this.foo} />
儿童(es6):
// otherFunc() will be called by an onClick button event
otherFunc(){
...
this.props.callFoo;
}
以上不起作用。这有效,但我不需要这样做:
家长(es6):
foo(bool){
...
if (bool){
console.log("i was called");
}
}
<Child callFoo={this.foo} />
儿童(es6):
// otherFunc() will be called by an onClick button event
otherFunc(){
...
this.props.callFoo(true);
}
有没有办法通过this.props.callFoo
简单地调用函数?
答案 0 :(得分:5)
您不需要传递布尔值,但您必须使用括号来执行callFoo
函数。这是你的例子:
class Parent extends React.Component {
foo() {
console.log('i was called');
}
render() {
return(
<Child callFoo={this.foo}/>
);
}
}
class Child extends React.Component {
otherFunc() {
this.props.callFoo();
}
render() {
return(
<div onClick={this.otherFunc.bind(this)}>Child</div>
);
}
}
React.render(<Parent/>, document.getElementById('View'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react-with-addons.min.js"></script>
<div id="View"></div>