如何在iOS / Android中管理全局状态?

时间:2018-03-11 03:45:29

标签: android ios reactjs react-native

我过去常常使用react-native来开发移动应用,原因很多我放弃了。但我喜欢JavaScrip应用程序的一件事是你有redux等状态容器。

我想知道人们如何管理iOS和Android中的全局状态?

两种方案可以帮助您理解我的问题:

  1. 用户已登录。当用户在屏幕之间导航时,如何知道用户是否已登录?我是否必须通过currentUser财产?

  2. 假设我正在编写一个推文克隆,用户可以like发推文或点击它,然后转到另一个页面查看推文的详细信息。用户还可以在详细信息屏幕上like发送推文。返回后,主屏幕上的like按钮也会被激活,因为用户liked会在详细信息屏幕上发送此推文。

  3. 这两件事都可以在reactreact-native中使用

    完成
    componentWillReceiveProps(nextProps)
    

    我想知道实现这一目标的iOS和Android方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用reductor这是Java / Android的redux变体。

Reductor可以帮助您更容易地阅读,编写和推理您的状态突变。它利用注释处理来验证正确性并在编译时生成样板代码,允许您以简洁的方式将状态缩减器表示为纯java函数。它还符合Redux原则:

  1. 单一事实来源
  2. 州是只读的
  3. 改变是纯粹的         功能

答案 1 :(得分:0)

回答指出[在android的上下文中] 1.为了通过多个屏幕/活动维护用户登录状态,您可以在android共享首选项中维护用户登录状态,并且可以使用函数创建类MiscUtils

public static isUserLoggedIn()
{
return userLoginState//Based on the variable you stored in shared preference
}

现在您可以使用此功能,并在此类中添加更多功能以访问多个活动中的用户属性。

  1. 如果用户喜欢活动A中的推文并转到详细信息活动说B,因为B从A获取所有数据(其推文喜欢变量),B会显示推文,或者你可以获取来自网络的详细信息。在任何一种情况下,推文都会被喜欢,现在场景是这样的,用户喜欢B中的推文并回到A,在Android中有一些名为startActivityForResult的东西,使用它可以设置结果inn Activity B [说明属性发生了变化,在捆绑和更新数据中,无论你将它存储在哪里]和onActivityResult中的活动A你可以使用那些属性[由活动B设置]来显示更新的ui