我希望有人可以指示我通過Reactive Record緩存加載數據來處理頂級Reactrb組件中加載狀態的最佳方式。如何使用反應記錄延遲加載來處理加載狀態
我的gaol是頂層組件顯示一個等待狀態,而其子組件獲取他們需要呈現的數據,然後快速渲染整個組件。我不希望帶有子組件的個別等待狀態,因爲這會在需要加載大量數據時產生「急躁」的體驗。
如果你考慮這個例子:
class PostsWithCommentsList < React::Component::Base
before_mount do
state.posts! Post.all
end
def everything_loaded?
#how do I know when all posts and all comments are loaded?
end
def render
div do
ul do
state.posts.each do |post|
li { post.title }
ul do
post.comments.each do |comment|
li { comment.body }
end
end
end
end if everything_loaded?
end
end
end
如何獲得everything_loaded?方法來檢查是否所有的帖子和所有的評論已經加載,所以組件快速平穩地繪製?
所有幫助非常歡迎。謝謝
我已經嘗試了這種方法,但得到了很多React警告「警告:未定義(...):無法在現有狀態轉換期間更新(例如在'render'或另一個組件的構造函數中)。一個純粹的道具和狀態函數;構造函數的副作用是一種反模式,但可以移動到'componentWillMount'中。「 – BarrieH
調試這個,我可以看到它對ReactiveRecord :: WhileLoading.quiet的調用?生成所有警告。也許這是爲早期版本的React設計的? – BarrieH
我忘記了這一點,你將不得不使用reactrb的0-8穩定分支來使用react.js> 0.13來處理這個問題。我不確定@catmando何時會發布帶有更新的新版本。 – adamcreekroad