我是React native和redux的新手。当我使用React native和redux时,我意识到redux state
中的store
会导致component
渲染很多。
例如,我有一个列表视图的数据,它存储为redux状态。列表视图将显示在屏幕A中。出于某些原因,我将在下一个屏幕中修改列表视图。通过将数据存储在redux状态,只要下一个屏幕中的列表视图发生更改,屏幕A中的列表视图就会自动更新。
不幸的是,每当列表视图中的数据发生更改时,我都必须重新渲染屏幕A中的每个组件(如果我将数据置于组件状态,则只会重新呈现列表视图而不是所有组件)。 / p>
我可以将列表视图的数据存储在redux状态并重新渲染(不是所有组件)吗?
如果您有任何建议,请告诉我。
提前谢谢!
答案 0 :(得分:3)
好吧,如果您已使用mapStateToProps
将状态与属性相关联,那么每当您更改reducer
中的数据时,这些props
也会更改,这会导致重新调用render()
方法,基本上重新渲染。
props
中的每个已连接state
都会导致重新呈现组件,如果它们在reducers store
中更改了。
在你的情况下,问题应该在其他地方,也许在导航器中,在从A导航到B仍然在后台安装后离开组件A?
要回答您的问题,您可以将ListView
(某些json列表)的数据存储在redux
中,而不是connect
存储在您的组件中,但请尝试在其中创建另一个组件Component A
与Component A_2
类似,并将其与mapStateToProps
相关联。然后,如果您更改数据,则只会重新呈现Component A_2
,而不是整个Component A
。