gpt4 book ai didi

javascript - React JS 在另一个组件内调用函数

转载 作者:行者123 更新时间:2023-11-28 19:07:08 24 4
gpt4 key购买 nike

我正在尝试使用 Mousetrap 从 React 中的另一个组件调用一个函数图书馆。

class Parent extends React.Component {
constructor() {
super();

}
...
render() {
return(...);
}
}
class Child extends React.Component {
constructor() {
super();
this.state = { show: false };
this.open = this.open.bind(this);
this.close = this.close.bind(this);
}
open() {
this.setState({ show: true });
}
close() {
this.setState({ show: true });
}
render() {
return(...);
}
}

现在,我想做的是在父级中的某个位置调用 Mousetrap.bind('e', function(e) { Child.open() }); (因为父级将是渲染,并且子级将仅在此命令上渲染)。但是,我不确定在哪里实际包含它。在构造函数中调用它,或者在 render() 中的某个地方,或者在我没有考虑过的其他地方调用它会更好吗?

最佳答案

最好将其纳入您所在州的一部分,例如

class Parent extends React.Component {
constructor(){
super();
this._eKeyPress = this._eKeyPress.bind(this);
this.state.showChild = false;
}
componentDidMount(){
Mousetrap.bind('e', this._eKeyPress);
}
componentWillUnmount(){
Mousetrap.unbind('e', this._eKeyPress);
}
_eKeyPress(){
this.setState({showChild: true});
}

render(){
return <Child show={this.state.showChild} />;
}
}

接下来的问题是您是否需要创建 child ,因为您也可以这样做

render(){
return this.state.showChild ? <Child /> : null;
}

关于javascript - React JS 在另一个组件内调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com