2016-08-24 1 views
0

私の子供のコンポーネントの1つが画像を表示するケースが1つあります。ソースはpropsまで完全に通過します。 しかし:私の親コンポーネントは、イメージ(またはそれに対応するイメージオブジェクト)のdomノードへの参照を必要とします。イメージを(オブジェクトとして)作成し、これを対応するコンポーネントに渡す方が簡単でしょうか?もしそうなら:どのようにDomNode/ImageObjectを反応コンポーネントとそのに変換するのですか?ノードへの参照を失うことなくdomノードを反応コンポーネントに変換できますか?

これは悪い習慣であると考えられているか、あるいは可能ではないと思われます。しかし、私はそれを試してみたい。

答えて

1

あなたは機能渡すことによって、子供のrefにアクセスすることができます

class Parent extends Component { 
    render() { 
    return (
     <ChildContainingImage imageRef={ (image) => this.image = image } /> 
    ) 
    } 
} 

class ChildContainingImage extends Component { 
    render() { 
    return (
     <img ref={ this.props.imageRef } /> 
    ) 
    } 
} 
+0

実際に画像へのREFチェーンを下に簡素化します。しかし、私は画像コンポーネントによってレンダリングされるDomノードを渡すことについて尋ねていました。 – Fuzzyma

+0

Reactで作業する場合、実際のDOMノードと対話しません。私はあなたが 'render'関数であなたのUIをビルドするとき、DOM要素を作成しないので、あなたが求めていることは不可能だと思います。 JSXを使用してDOMの**表現**を作成します。これは実際のDOMと仮想の関係を作るReactです。 –

+0

私はあなたが '新しいImage()'を作成して渡すことを望んでいました。このようにして、ローディングと画像そのものを追跡することができました。 – Fuzzyma

関連する問題