2016-08-24 19 views
0

我有一種情況,其中一個子組件顯示圖像。源程序一直向下通過props。 但是:我的父組件需要對圖像的dom節點(或其相應的圖像對象)的引用。創建圖像(作爲對象)並將其傳遞給相應的組件會更容易嗎?如果是這樣的話:如何將DomNode/ImageObject轉換爲反應組件而不使父節點中的引用無用?我可以將dom節點轉換爲反應組件,而不會丟失對節點的引用嗎?

我可以想象,這被認爲是不好的做法或甚至不可能。不過:我想試試看。

回答

1

你可以通過傳遞函數訪問一個孩子的裁判:

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

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

這確實會簡化裁判環比下降的形象。但是我問的是向下傳遞Dom節點,然後由圖像組件渲染 – Fuzzyma

+0

在使用React時,您不會與真正的DOM節點交互。我認爲你所要求的是不可能的,因爲當你在'render'函數中構建你的UI時,你不會創建任何DOM元素。使用JSX構建DOM的**表示**。這是使實際DOM和虛擬DOM之間關係的React。 –

+0

我希望你可以創建一個新的Image()並傳遞它。這樣我可以跟蹤加載和圖像本身。 – Fuzzyma

相關問題