2 回答

TA貢獻1851條經驗 獲得超5個贊
不,你誤解了它的mapState
工作原理。 mapState
將始終在根狀態發生更改時調用。
這里記憶選擇器的目的是確保在mapState
組件關心的狀態沒有改變的情況下返回相同的值,因為connect
使用返回值的淺比較來決定組件是否應該重新渲染。
請通讀React-Redux 使用指南,mapState
了解如何mapState
正確使用。我在Using Reselect Selectors for Encapsulation and Performance上的帖子討論了為什么以及如何使用 Reselect。

TA貢獻1806條經驗 獲得超8個贊
你可以像這樣創建你的選擇器:
const selectData = state => state.data;
const selectIsComplete = createSelector(
selectData,
(data) => data.complete
)
const mapStateToProps = createSelector(
selectIsComplete,
//only create a new object with complete property
// if complete changes
complete=>({complete})
)
如果 ownProps 更改,組件仍將重新渲染,但如果它沒有 ownProps,那么只有在完成更改時才會重新渲染。
添加回答
舉報