簡體   English   中英

React.js + Flux - 將回調作為視圖中的prop傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM