我已在我的应用程序中实现了redux
。我的方案是在从一个组件导航到另一个组件时,我正在更新redux
状态。因此,当我回到上一个组件时,获取最后一个redux
状态数据。
预期结果:
当我回到之前的组件时,需要处于相同的状态。我不想要最近的更改数据。
Ex: Marie ->April, when I go back, Marie <- April
实际结果:
更新最近的更改数据。
Ex: Marie ->April, when I go back, April <- April
我怎么能为此编写应用程序结构?这里需要redux
吗?或者我应该在导航时作为params
传递来管理组件状态?
答案 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)。
我从您的问题中了解到,您同时处理两项要求:
我不知道这两个要求的单一解决方案。如果我必须这样做,我将以这样一种方式设计组件的状态,即它通过不同的位置分布或分散,每个位置都有自己的用途。基本上,我使用了两种不同的解决方案:
this.state
。this.state
。要使此解决方案有效,我不会使用react-redux,而只使用Redux
。在redux
中有一个名为store.getState()的方法,它将返回单个Redux状态对象。我使全局redux
只读 - 可访问,并使用它来呈现需要共享数据的组件部分。
答案 1 :(得分:1)
最好知道何时使用。
<强>持续时间强>
不同的状态持续不同的时间。我把时间分为以下几组:
短期数据将在您的应用中快速变化 - 将此类数据存储在本地React状态
中期:数据可能会在您的应用中持续一段时间 - 将状态存储在Redux商店中
长期:应该在多次访问您网站之间持续的数据 - 存储在服务器上的数据库或本地存储中的其他位置
答案 2 :(得分:0)
如果多个类中需要数据,则使用redux状态,否则使用react状态, 它取决于组件的生命周期。 由于redux状态是全局的,并且反应状态仅在其定义的类中有效。 根据您的情况,您可以使用redux状态作为第一个组件,因为您将返回它并且您希望Marie作为您的数据并使用第二个组件的反应状态,因为您希望四月作为您的数据。