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