我在我的應用程序中使用react,redux和immutablejs。該商店是不可變的,並被映射到道具。將調度映射到道具時,我提供了輔助函數。該輔助函數與這段代碼在終極版TodoList的例子相媲美:如何在智能容器中定義函數時保持組件純粹?
const mapDispatchToProps = (dispatch) => {
return {
onTodoClick: (id) => {
dispatch(toggleTodo(id))
}
}
}
我現在的問題是,我的純組分渲染過於頻繁:上述連接創建一個onTodoClick
功能連接每一個。 當PureRenderMixin shallowCompares currentProps到newProps時,它將組件標記爲shouldUpdate,因爲指針已更改。
如何在保持組件的渲染計數低的同時在容器中定義幫助函數?
我已經看過重新選擇,但計劃只用它來計算mapStateToProps中的派生狀態。爲每一個連接創建一個選擇器會更好嗎,所以你的函數也被記憶了嗎?
看一看['shouldComponentUpdate'(https://facebook.github.io/react/docs/component-specs.html#updating-shouldcomponentupdate)。您可能可以調整組件以不經常渲染。 –
@MarioTacke正是'pureRenderMixin'已經做到的。 – ajmajmajma