【问题标题】:Inheriting from a React class created using createClass从使用 createClass 创建的 React 类继承
【发布时间】:2016-05-25 14:14:19
【问题描述】:
我正在使用第 3 方库 (Formsy),我想修补它的 React 类,以便我可以覆盖它定义的函数之一 (validate)。
我原以为这很简单:
Formsy.Form.prototype.validate = function(component) {
console.log('test');
}
但这不起作用。子表单组件仍然调用原始函数(由 Forms.Form 通过子上下文提供)
我该怎么做?
【问题讨论】:
标签:
javascript
inheritance
reactjs
【解决方案1】:
由于 Formly 是一个 mixin,因此它的属性被添加到“this”,你可以在由 React.CreateClass 创建的实例上覆盖该属性。但这不会自动适用于使用此 Mixin 的所有实例
const MyInput = React.createClass({
mixins: [Formsy.Mixin],
changeValue(event) {
this.setValue(event.currentTarget[this.props.type === 'checkbox' ? 'checked' : 'value']);
},
validate: function(){
console.log('validating');
},