我讀this post in the React blog時所描述的組件和解進程:轉化定製陣營元素到其不甘心正常的子元素
當它看到這個元素:
{ type: Button, props: { color: 'blue', children: 'OK!' } }
陣營會問鍵是什麼呈現。該按鈕將返回此 元素:
{ type: 'button', props: { className: 'button button-blue', children: { type: 'b', props: { children: 'OK!' } } } }
我的問題是,這一功能直接暴露在所有的,或者以其他方式在某種程度上訪問?就像我如何將第一個對象翻譯成第二個對象?
搶佔爲什麼我問這個問題...
我建立一個排序表,其中表中的各個元件可以是字符串或反應的組分。如果他們是字符串,排序很容易。在元素是React組件的情況下,我發現我可以使用react-addons-text-content
來提取文本並使用它進行排序。這樣定義
const el = <span>Text</span>;
但不是一個:那一個元素我這樣定義工作正常
const Com =() => <span>Text</span>;
const el = <Com />;
對於我而言,我希望這些要處理的完全一樣,但react-addons-text-content
能由於上述自定義元素和正常元素之間的區別,所以無法處理它。如果我可以從自定義元素表示形式轉換爲正常元素表示形式,它將全部工作。
我知道替代解決方案是爲每個元素存儲兩個值,一個用於顯示,另一個用於排序。但是如果我可以逃避而不重複一切,那對我來說似乎更可取。建議雖然歡迎,但我不是這方面的專家:)
如何調用'render()'來獲取返回的值。 –
它將不得不稍微複雜一點來處理功能組件和嵌套組件,但也許可以工作,我將不得不稍後使用它... – dumbmatter
React獲取您提供的數據,並使用組件你定義生成DOM。那麼,爲什麼不對發送給組件的數據進行排序呢?他們將按照您對數據進行排序的順序進行渲染。 –