我是菜鸟,目前正在学习reactjs
,有人可以解释,如何访问位于component
内的另一个component
内的reactjs
内的函数吗? / p>
示例:
class ComponentOne extends React.Component{
constructor(){
super()
this.handleClick=this.handleClick.bind(this)
}
handleClick(){
console.log("handling click")
}
render(){
return(
<button onClick={this.handleClick}>Click me</button>
)
}
}
// This component is in another file
import ComponentOne from './ComponentOne'
class ComponentTwo extends React.Component{
constructor(){
super()
this.handleComp=this.handleComp.bind(this)
}
handleComp(){
ComponentOne.handleClick()
}
render(){
return(
<button onClick={this.handleComp}>Click me</button>
)
}
}
像这样。
答案 0 :(得分:3)
通常,当您使用react时,您希望在其他组件you use a ref内执行函数。
我有明确的用例,我有一个VideoPlayer
组件,我想在播放器(组件外部)上执行播放或暂停功能,但我想要VideoPlayer
&#39 ; s调用函数来更新其状态和其他所有内容。它可能非常强大!
class ParentComponent extends React.Component {
handleClick = (e) => {
e.preventDefault();
this.childComponentRef && this.childComponentRef.someFunc();
}
assignChildComponentRef = target => this.childComponentRef = target;
render() {
retrurn (<div>
<button onClick={this.handleClick}>trigger child function click</button>
<ChildComponent ref={this.assignChildComponentRef} prop1={this.something} />
</div>);
}
}
// child component implementation
class ChildComponent extends React.Component {
constructor(props){
super(props);
this.state = { value: 0 };
}
someFunc = () => {
this.setState({ value: this.state.value + 1 });
}
render() {
return <div>{this.state.value}</div>
}
}
这里很少有人注意到这一点。