React-Native:何时进入redux状态并在应用程序中反应状态?

时间:2017-10-09 05:33:47

标签: react-native redux react-native-android

我已在我的应用程序中实现了redux。我的方案是在从一个组件导航到另一个组件时,我正在更新redux状态。因此,当我回到上一个组件时,获取最后一个redux状态数据。

预期结果:

当我回到之前的组件时,需要处于相同的状态。我不想要最近的更改数据。

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

实际结果:

更新最近的更改数据。

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

我怎么能为此编写应用程序结构?这里需要redux吗?或者我应该在导航时作为params传递来管理组件状态?

3 个答案:

答案 0 :(得分:2)

我不确定我的答案是否是正确的实施方式。但目前,我这样做:

组件的

def home(request): form = HesapForm(request.POST or None) if form.is_valid(): form.save() return HttpResponseRedirect('/') else: form = HesapForm(initial={'your_field': 'your_value'}) return render(request, 'home.html', {'form': form}) 可以分散在多个位置(例如:State,类的字段,全局对象或Redux)。

我从您的问题中了解到,您同时处理两项要求:

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

我不知道这两个要求的单一解决方案。如果我必须这样做,我将以这样一种方式设计组件的状态,即它通过不同的位置分布或分散,每个位置都有自己的用途。基本上,我使用了两种不同的解决方案:

  1. 将放入需要保留的部分州 this.state
  2. 需要共享的部分州将放入this.state
  3. 要使此解决方案有效,我不会使用react-redux,而只使用Redux。在redux中有一个名为store.getState()的方法,它将返回单个Redux状态对象。我使全局redux只读 - 可访问,并使用它来呈现需要共享数据的组件部分。

答案 1 :(得分:1)

最好知道何时使用。

<强>持续时间

不同的状态持续不同的时间。我把时间分为以下几组:

短期数据将在您的应用中快速变化 - 将此类数据存储在本地React状态

中期:数据可能会在您的应用中持续一段时间 - 将状态存储在Redux商店中

长期:应该在多次访问您网站之间持续的数据 - 存储在服务器上的数据库或本地存储中的其他位置

点击此处了解详情:React State vs Redux State When and Why?

答案 2 :(得分:0)

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