比方說,我有這些組件:哪個組件應該控制較低組件的加載狀態?
Translator
TranslationList
Translator
決定翻譯方面,具有翻譯功能。 TranslationList
必須證明這些「可視狀態」:裝載,結果列表,沒有結果。
的頁面(一個實例)周圍的Translator
移動:上聚焦的輸入端,它的動作「下面」,並給出與建議一個下拉菜單。
所以在每次移動時,它具有:
- 表示它加載的翻譯
- 顯示翻譯列表或沒有結果的消息。
所以我的問題是:
哪個組件應控制在「加載」可視狀態?
如果Translator
組件控制它,它必須通過loading=true translations=[]
作爲道具到Translation
列表。然後,它不得不用新的道具loading=false translations=[...]
重新渲染它。這似乎有點違反直覺的,因爲loading
感覺就像TranslationList
組件的狀態。
如果我們的TranslationList
組件具有loading
狀態,那麼它也必須有辦法translate
的事情,這意味着我必須通過translate
功能道具。然後我會把translations
和loading
作爲狀態。這一切都有點混亂,因爲它現在還必須接收字符串來翻譯,上下文。
我也不想對裝載消息,沒有結果的消息中分離出來的部件。我寧願保留這些在TranslationList
裏面,因爲這3個共享相同的包裝<div class="list-group"></div>
也許這兩個組件之間應該只有一個Component,只負責提取翻譯數據?