2017-10-09 49 views
5

我在我的应用程序中实现了redux。我的场景是从一个组件导航到另一个组件时,我正在更新redux状态。所以当我回到以前的组件时,获取最后的redux状态数据。React-Native:什么时候进入应用状态并在应用中反应状态?

预期结果:

当我回来前一个组件,需要在相同的状态。我不想要最近的更改数据。

Ex: Marie ->April, when I go back, Marie <- April 

实际结果:

它的更新最近的变化数据。

Ex: Marie ->April, when I go back, April <- April 

我该如何为此编写应用程序结构?这里需要redux吗?或者我应该在导航时作为params与组件状态一起管理?

回答

2

我不确定我的答案是否是正确的实施方式。但目前,我做这样的:(:this.state,一流的领域,全局对象或终极版EX)

组件的State可通过多个位置分散。

我从你的问题理解什么是你正在处理的同时2个要求:需要组件的状态的

  • 部分被保存下来,当 导航背部和福特。
  • 组件状态的另一部分需要与 其他组件(保持不变)在导航返回和福特时共享。

我不知道这两种要求都有一个解决方案。如果我必须这样做,我将设计组件的状态,使其分散或散布在不同的位置,每个位置都用于自己的目的。基本上,我用2个不同的解决方案:它需要保留的将被放置在 this.state状态

  1. 部分。
  2. 需要共享的部分状态将被放入Redux

对于此解决方案的工作,我不使用react-redux,只有redux。在redux中有一种叫做store.getState()的方法,它将返回单个Redux状态对象。我使store只读访问全局可访问,并使用它来呈现需要共享数据的组件的某些部分。

+0

这究竟是什么在我的脑子很乱。感谢您的整洁干净的解释。现在我完全清除了。再次感谢。 – Balasubramanian

+0

我也不确定,但我遵循上面的概念。我们不应该把所有数据都放在一起。非常感谢。 –

1

如果数据在多个类中需要,那么使用redux状态,否则使用react状态,它取决于组件的生命周期。 由于redux状态是全局的,并且仅在定义它的类中处于活动状态。 根据您的情况,您可以对第一个组件使用redux状态,因为您会回复它,并且希望Marie作为您的数据,并使用第二个组件的反应状态,因为您希望将April作为您的数据。

2

很高兴知道在什么时候使用。

时间

的不同片段的状态都持续了不同的时间量。我松散归类时间到这些组:

短期:将在您的应用程序迅速改变数据 - 本地店这种类型的数据作出反应状态

中期:数据很可能会导致坚持在您的应用程序一段时间 - 存储状态的终极版店内

长期:应该持续多次访问您的网站之间数据 - 存储在别处可能给数据库服务器检查或到本地存储

此处获得更多信息:React State vs Redux State When and Why?