反应原生 - redux状态导致性能问题

时间:2016-12-27 11:24:43

标签: reactjs react-native redux react-redux

我是React native和redux的新手。当我使用React native和redux时,我意识到redux state中的store会导致component渲染很多。

例如,我有一个列表视图的数据,它存储为redux状态。列表视图将显示在屏幕A中。出于某些原因,我将在下一个屏幕中修改列表视图。通过将数据存储在redux状态,只要下一个屏幕中的列表视图发生更改,屏幕A中的列表视图就会自动更新。

不幸的是,每当列表视图中的数据发生更改时,我都必须重新渲染屏幕A中的每个组件(如果我将数据置于组件状态,则只会重新呈现列表视图而不是所有组件)。 / p>

我可以将列表视图的数据存储在redux状态并重新渲染(不是所有组件)吗?

如果您有任何建议,请告诉我。

提前谢谢!

1 个答案:

答案 0 :(得分:3)

好吧,如果您已使用mapStateToProps将状态与属性相关联,那么每当您更改reducer中的数据时,这些props也会更改,这会导致重新调用render()方法,基本上重新渲染。

props中的每个已连接state都会导致重新呈现组件,如果它们在reducers store中更改了。

在你的情况下,问题应该在其他地方,也许在导航器中,在从A导航到B仍然在后台安装后离开组件A?

要回答您的问题,您可以将ListView(某些json列表)的数据存储在redux中,而不是connect存储在您的组件中,但请尝试在其中创建另一个组件Component AComponent A_2类似,并将其与mapStateToProps相关联。然后,如果您更改数据,则只会重新呈现Component A_2,而不是整个Component A