2017-05-04 24 views
0

當渲染列表,應該添加一個key道具列表中的每個元素。這在文檔中被描述爲「提示」,其中子元素可以在不同的呈現器中穩定。更改key的值將導致該元素被卸載和重新安裝。可以將'key'屬性(在reactjs中)計入強制重新安裝任何組件嗎?

這種行爲也是目前適用於任何部件,甚至是那些並不代表列表中的元素,並推薦一些陣營開發商強迫任何組件在必要時重新安裝的方式。這種行爲是否超出了文檔中描述的範圍?可以依賴的API的穩定功能?還是應該將其視爲可隨時更改的實現細節?

+0

爲什麼downvote?我在問這是否是在代碼中採用的好模式,還是依賴於API的不穩定實現細節。 –

回答

0

關鍵屬性是爲了區分相似的元件。設置一個新密鑰確實會強制重新渲染,但我不確定爲什麼要採取這種暴力方法。不知道更多關於您遇到的具體情況,很難給它是否是一個好或壞主意輸入,但在一般情況下,這是一個「哈克」的實現,是要撤消的好處很多反應提供背後關於它的使用虛擬dom的場景。

一般來說,如果你的代碼中有一點需要強制反應,當它不是自己的意願時重新渲染,這可能意味着有一個更基本的問題,你的代碼。這將是針對這個更深層次問題的樂隊援助解決方案,即使它是相當穩定可靠的樂隊援助。

+0

下面是可能出現這種情況。假設你的應用程序有關於書籍的信息,並且當前的URL是/ book/1。現在用戶導航到/ book/2,並且您需要從API獲取書籍2的數據。您應該在生命週期的哪個階段調用API?你可以把在ComponentWillMount或ComponentDidMount API調用,但對於那些工作,圖書組件需要被卸除,而且重新安裝,當用戶更改的URL。那有意義嗎? –

+0

聽起來像你把那個API調用放在了錯誤的地方。 – gravityplanx

相關問題