2016-07-08 7 views
0

上の関数を呼び出す私は、次のReactJsクラスを持っている:がReactJsコンポーネントクラスのオブジェクト

var Linker = React.createClass({ 
    foo: function(){ 
    console.log('foo') 
    }, 

    render: function(){ 
    return (
     <div></div> 
    ); 
    } 
}); 

は今、私は外からのfoo()関数をコールする場合:

Linker.foo(); 

をしかし、それはスロー:

app.js:4654 Uncaught TypeError: Linker.foo is not a function 

foo()メソッドの呼び出し方法を教えてもらえますか?

理由:以前のバージョンの反応ルータを使用する必要がありました。別のルートに移行するために、いくつかのミックスインで古いES5クラスが必要です。私の主なクラスがES6の間、Linkerクラスに移行させる計画です。

+0

なぜ[refs](https://facebook.github.io/react/docs/more-about-refs.html)でリンカにアクセスできないのですか? React $要素のコールコンストラクタは決して – Yozi

+0

@ Yoziはい、それを見つけなければなりません。これは非常にうまく動作します。 – Phillipp

答えて

0

コンテキストなしで関数にアクセスする必要がある場合は、Linkerのプロトタイププロパティで直接見つけることができます。

Linker.prototype.foo(); 
+0

私の場合、コンテキストがなければ、彼はルータを見つけることができないので、それは動作しませんでした。しかし、あなたが文脈を必要としないときにはうまくいくようです。 – Phillipp

+0

心配はいりません。受け入れられた回答をマークする前に、コンポーネントインスタンスではなくファクトリインスタンス上のメソッドを探している例のように、質問の編集や言い換えを検討することをおすすめします。 –

+0

私は質問を編集し、あなたの答えを正しいものとしてマークしました。なぜなら、文脈が必要なので、それが私にとってうまくいかなくても、私の質問の正解ですからです。 – Phillipp

関連する問題