2015-09-07 27 views
1

我正在使用React和Redux作爲我的商店。我還使用react-redux庫來整合這兩者。我的存儲包含兩組數據:關係數據存儲中的列表和項目之間的關係(使用react-redux)

  • 任務{ID,姓名,assigneeId}
  • 用戶{ID,名稱}

我有(使用反應 - 終極版)一TaskListComponent connect - s到我的商店使用:

@connect(state => { 
    tasks: state.tasks, 
    users: state.users 
}) 

我需要這既是因爲該列表有一個過濾器,允許搜索我的任務或用戶名 - 我的組件需要在「用戶感知」。

此組件列出另一個名爲TaskItemComponent的組件,它顯示任務名稱和分配用戶的名稱。

我很努力地決定解決任務分配用戶的最佳方法。

  • 反應準則告訴我,Item組件應該把Task當做道具,並在渲染函數中解析用戶自己。但是,這需要組件具有存儲感知能力,並且使用react-redux庫時,它看起來不是允許組件訪問存儲,而不是對其進行訪問。

  • 或者我可以解析列表中的用戶,並將其與任務一起傳遞給Item組件,例如, <TaskItemComponent task={task} assignee={resolveTaskAssignee(task)} />。這有利於保持我的物品「啞巴」,並且意味着我不需要讓它收聽商店變化(甚至不瞭解商店)。

任何意見,將不勝感激。

回答

1

兩種方法都很好。我會從外面傳遞道具開始,一旦它變得乏味,讓Task組件接收task作爲道具,但使用connect讀取它的user

另請參閱https://stackoverflow.com/a/25701169/458193

0

選項#2沒有任何內在的錯誤。你必須在某個地方做數據操作。它始終是在smart組件中執行這些操作的正確位置。

個人而言,我更喜歡商店中更好的數據模型。但是,你得到了你所得到的。