2017-03-29 15 views
0

ES6の反応クラスでカスタムproptype関数を呼び出す方法は?ES6でカスタムproptype関数を呼び出す方法Reactクラス

export default class MyComponent extends Component { 
    validate(props, propName, componentName) { 
     ... 
    ); 
    ... 
} 

MyComponent.propTypes = { 
    children: validate 
}; 

私は多くの方法(MyComponent.validate、this.validate、バインド付き)を試していますが、何も動作しません。

+0

ハム私はその機能がクラス外でなければならないと思います。 – Jerome

答えて

1

私が正しく理解している場合は、コンポーネントのカスタムプロップ検証を作成しようとしており、この検証関数をコンポーネントクラス内に入れたいと考えています。

クラスをインスタンス化せずにクラス内の関数を呼び出すには、関数をstaticにする必要があります。

これは動作します:

class SomeClass { 
 
    static func() { 
 
    console.log('in here'); 
 
    } 
 
} 
 

 
SomeClass.func();

はしかし、私はコンポーネントクラス自体でコンポーネントの検証機能を維持する権利はないと思います。私はその機能を外に保つことが最善であると信じています。

+0

なぜあなたはそれを保持することが正当ではないと思いますか? – Jerome

+0

私はそれについて考えて、私は本当に正当な理由はない。私はちょうどどこでもこのように使用されて見たことがありません。私はコンポーネントクラスは、コンポーネントのレンダリングとそれの状態(コンポーネントの 'ロジック')の管理だけを扱うべきだと思います。この関数は、クラス外で常に検証を行う方法と同じように、外部に保持する必要があります。 – squgeim

+0

この場合、親コンポーネントから共有されたコンテキストにはアクセスできないようです。 – Jerome

関連する問題