Kus*_*ain 31 methods class call reactjs
我有两个组成部分.我想从第二个组件调用第一个组件的方法.我该怎么做?
这是我的代码.
第一部分
class Header extends React.Component{
constructor(){
super();
}
checkClick(e, notyId){
alert(notyId);
}
}
export default Header;
Run Code Online (Sandbox Code Playgroud)
第二部分
class PopupOver extends React.Component{
constructor(){
super();
// here i need to call Header class function check click....
// How to call Header.checkClick() from this class
}
render(){
return (
<div className="displayinline col-md-12 ">
Hello
</div>
);
}
}
export default PopupOver;
Run Code Online (Sandbox Code Playgroud)
Moh*_*rma 20
你可以做这样的事情
import React from 'react';
class Header extends React.Component {
constructor() {
super();
}
checkClick(e, notyId) {
alert(notyId);
}
render() {
return (
<PopupOver func ={this.checkClick } />
)
}
};
class PopupOver extends React.Component {
constructor(props) {
super(props);
this.props.func(this, 1234);
}
render() {
return (
<div className="displayinline col-md-12 ">
Hello
</div>
);
}
}
export default Header;
Run Code Online (Sandbox Code Playgroud)
使用静力学
var MyComponent = React.createClass({
statics: {
customMethod: function(foo) {
return foo === 'bar';
}
},
render: function() {
}
});
MyComponent.customMethod('bar'); // true
Run Code Online (Sandbox Code Playgroud)
嗯,实际上,React 不适合从父级调用子方法。一些框架,如Cycle.js,允许轻松访问来自父级和子级的数据,并对其做出反应。
此外,您很有可能并不真正需要它。考虑将其调用到现有组件中,这是一个更加独立的解决方案。但有时你仍然需要它,然后你有几个选择:
UPD:如果您需要共享一些不涉及任何状态的功能(如 OOP 中的静态函数),则无需将其包含在组件中。只需单独声明并在需要时调用:
let counter = 0;
function handleInstantiate() {
counter++;
}
constructor(props) {
super(props);
handleInstantiate();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62969 次 |
| 最近记录: |