2016-09-22 3 views
5

私はこのarticleからHOCについて学んでいますが、前にprocmethodを見ていません。それらは何を参照していますか?反応javascriptのprocとメソッドは何ですか?

function refsHOC(WrappedComponent) { 
    return class RefsHOC extends React.Component { 
    proc(wrappedComponentInstance) { 
     wrappedComponentInstance.method() 
    } 

    render() { 
     const props = Object.assign({}, this.props, {ref: this.proc.bind(this)}) 
     return <WrappedComponent {...this.props}/> 
    } 
    } 
} 

答えて

6

this.proc

proc(wrappedComponentInstance) { 
    wrappedComponentInstance.method() 
} 

wrappedComponentInstance.method()方法を指す包まコンポーネント上の任意のメソッドをコールする方法の一例です。我々はレフリーので


を経由して、インスタンスメソッドにアクセスする方法を模索してWrappedComponentのインスタンス自体次の例では

を、どちらも行うには何があります。記事は述べていません特に反応と

+0

procは何ですか?それは単にmethod()への参照を返しますか?私はそれについて聞いたことがない、またはそれについて前に読んだことはありません。 – stackjlei

+2

あなたはこれを考えすぎています。 'RefsHOC'はクラスです。そのクラスはメソッド 'proc'を定義します。クラスのインスタンスは 'this.proc'を介してメソッドにアクセスできます。もう一つの簡単な例があります: 'class Foo {bar(){} baz(){this.bar()}'。 'Foo'のすべてのインスタンスは' bar'と 'baz'メソッドを持ちます。 'baz'はthis.bar()で' bar'を呼び出します。あるいはもっと単純化された: 'var foo = {bar(){}、baz(){this.bar()}}'。 'foo'は2つのメソッドを持つオブジェクトです。 'foo.baz()'も 'this.bar()'を介して 'foo.bar'を呼び出します。 –

+2

* "procは何をしますか?" *これはコード内にあります: 'wrappedComponentInstance.method()'です。それは渡された引数の 'method'メソッドを呼び出します。 –

2

私はこの同じ記事に出会い、最初は混乱しました。私はそれを混乱させているユーザーのために明確にするためにES6構文に分解しました。

export default WrappedComponent => 
    class extends Component { 

    //Proc function that gets called 
    proc = wrappedComponentInstance => { 
     wrappedComponentInstance.method() 
    } 

    render() { 
     const props = { ...this.props, ...{ ref: this.proc } } 
     return <WrappedComponent {...props} /> 
    } 
} 
関連する問題