[英]Is it ok to pass the entire Redux state object into a React component?
我們有一個組件需要訪問Redux的商店。
import React from 'react'
import { connect } from 'react-redux'
const Component = (props) => {
... code ...
}
我們使用connect
這個組件連接到商店。
export default connect(mapStateToProps)(Component)
我們現在需要定義mapStateToProps
作為connect
的第一個參數傳遞。
const mapStateToProps = state => ({ ...state })
為什么或為什么不是將數據注入組件的可接受方法? 這是否會在觸發渲染的每種情況下重新渲染此組件?
歡迎提供文檔和示例。
僅供參考:我正在為本視頻的第二部分做這件事,並考慮將其列為最終解決方案。 很想知道Stack對這段代碼的看法。
我認為將整個Redux狀態傳遞給組件是個壞主意。
雖然您的組件今天使用了商店的所有變量,但將來可能會出現不同的情況。
想象一下,在未來,您或其他人會創建許多新的組件來處理商店中的變量。 你看? 第一個組件會收到很多不必要的數據。
它只會對組件實際使用的道具進行重新渲染,React就像那樣聰明。 但是,我個人的偏好是不傳遞整個對象,它可能更容易編碼,但是不那么冗長。
const mapStateToProps = state => ({ ...state })
在這行代碼中,您不知道該組件將使用什么,這會使您的代碼更不易讀取,我也想控制命名,這就是我更喜歡的原因
const mapStateToProps = state => ({
primary,
secondary,
myComponentActive: active
})
現在,當有人正在閱讀您的代碼時,他確切地知道發生了什么。
如果您想要切換到React Hooks,省略mapStateToProps
對象,這也為您提供了更好的概述。 即使仍然在討論Hooks是否是未來,我覺得它非常方便。 雖然您可能會討論轉換的可能性,但這對您的視頻沒什么用處!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.