javascript - 我们可以在 React js 的另一个组件中创建和存储对类的引用吗
问题描述
class FlyBehaviour {
fly = () => {
// abstract
};
}
class QuackBehaviour {
quack = () => {
// abstract
};
}
class FlyWings extends FlyBehaviour {
fly = () => {
return <p>I can Fly</p>;
};
}
class NoFly extends FlyBehaviour {
fly = () => {
return <p>I cannot Fly</p>;
};
}
class QuackSound extends QuackBehaviour {
quack = () => {
console.log("Quacking");
return <p>Quack Quack</p>;
};
}
class Duck extends React.Component {
constructor(props) {
super(props);
QuackBehaviour q; // creating a reference to class QuackBehaviour
FlyBehaviour f ;
}
// some methods that use q and f references
}
这段代码只是想问我们是否可以创建对类的引用并使用它们来调用它们各自的方法。我们可以在 React js 中做到这一点吗?如果可以,有什么方法可以做到这一点,如果我们不能……那为什么呢?
解决方案
当然,您只需实例化一个 QuackBehavior 对象。
class Duck extends React.Component {
constructor(props) {
super(props);
this.QuackBehaviour = new QuackBehaviour(); // creating a reference to class QuackBehaviour
this.FlyBehaviour = new FlyBehaviour() ;
}
// some methods that use q and f references
quack = () => {
this.QuackBehaviour.quack();
}
fly = () => {
this.FlyBehaviour.fly();
}
}
但是,我强烈建议您避免在 React 项目中使用类继承。
React 更喜欢组合模式而不是继承模式。
推荐阅读
- javascript - 正在更改的对象的属性,即使它们应该由 Value 传递
- c - 关于使用 Direct IO 进行内存对齐
- javascript - 如何在keycloak中为用户设置授权
- azure - 定期执行 ETL 时,何时使用 azure 函数与 azure 持久函数
- html - 如何使用这些 Json 数据创建 HTML 表?
- php - 拉出所有类别并按父 ID 分组
- javascript - DOM元素出现时如何跳出循环?
- java - Sonarqube 自定义 Java 插件:传感器初始化时出现不满意的依赖错误
- driverless-ai - 无人驾驶AI Python客户端
- r - 自上次活动以来经过的代码天数