[英]React.js + Flux — Passing callback as a prop in view
官方的React.js教程有一個有趣的做法, 即將回調作為prop傳遞給子組件。 在他們的榜樣,他們有一個名為父組件CommentBox
並命名子組件CommentForm
。 父( CommentBox
)將回調方法handleCommentSubmit
傳遞給子( CommentForm
)。 提交表單時,子組件將觸發回調以通知父表單已提交表單。
但是,本React教程不是 Flux架構的教程。 從我有限的流量角度來看,我的第一直覺是子視圖應該調用一個動作,該動作(通過全局調度系統)更新商店。 然后,更新的存儲將觸發任何有意識的組件的更新,包括所討論的父組件, CommentBox
。
換句話說,父組件不關心,也不想知道它的孩子, CommentForm
正在做什么,或者提交表單的時間。 相反,它會在商店更新時重新呈現。 這意味着觸發商店更新的任何事情都會導致CommentBox
被更新(在我看來這是一件好事;如果有多種方式提交評論怎么辦?)
這讓我想到了我的主要問題:在Flux架構中是否有適合將回調方法傳遞給子組件的情況,或者這通常是反模式?
注意: Flux + React.js - 操作中的回調是好還是壞? 不是同一個問題 - 我在視圖中詢問回調,而不是在動作中。
如果你有一個純粹的UI組件,比如花哨的按鈕,那么在UI中啟用回調是有意義的; 動作只應用於觸發應用程序更改:
<MyFancyButton onClick={this.handleClick}/>
顯然, MyFancyButton
沒有足夠的信息來知道點擊應該做什么; 它取決於父視圖,它使用它來決定要調度的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.