2016-05-25 5 views
0

私はサードパーティのライブラリ(Formsy)を使用しています。それをReactクラスにパッチして、定義する関数の1つをオーバーライドすることができます(validate)。createClassを使用して作成したReactクラスから継承する

私はこれは非常に簡単であることを期待していた。

Formsy.Form.prototype.validate = function(component) { 
    console.log('test'); 
} 

しかし、それは動作しません。子フォームコンポーネントは、元の関数(子コンテキストを介してForms.Formによって提供される)を依然として呼び出します。

どうすればいいですか?

答えて

0

Formlyはmixinなので、そのプロパティが "this"に追加されているので、React.CreateClassで作成されたインスタンスのプロパティをオーバーライドできます。しかし、このミックスインを使用するすべてのインスタンスに自動的には適用されません。

const MyInput = React.createClass({ 
    mixins: [Formsy.Mixin], 
    changeValue(event) { 
    this.setValue(event.currentTarget[this.props.type === 'checkbox' ? 'checked' : 'value']); 
    }, 
    validate: function(){ 
    console.log('validating'); 
    }, 
関連する問題