Javascript React Native是否具有全局范围?如果没有,我如何模仿它?
我找不到像这样的东西Javascript React Native是否具有全局范围?如果没有,我如何模仿它?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我找不到像这样的东西 $rootScope 对于React Native,我想在不同的视图之间共享几个变量 在React中,在全局范围内存储变量有点反模式。React旨在与单向数据流一起使用,这意味着数据从组件向下流到其子组件。这是通过以下方式实现的 为了在多个视图之间共享一个值,您需要将数据存储在共享的父组件上,并将其作为prop传递,或者将其存储在负责数据管理的单独实体中。在ReactJS中,这是通过如下模式实现的,但我不确定react native的选项。例如,您可以导出具有静态属性的类
$rootScope
对于React Native,我想在不同的视图之间共享几个变量 在React中,在全局范围内存储变量有点反模式。React旨在与单向数据流一起使用,这意味着数据从组件向下流到其子组件。这是通过以下方式实现的
为了在多个视图之间共享一个值,您需要将数据存储在共享的父组件上,并将其作为
prop
传递,或者将其存储在负责数据管理的单独实体中。在ReactJS中,这是通过如下模式实现的,但我不确定react native的选项。例如,您可以导出具有静态属性的类,然后在需要时导入
例如,在main.js中:
export class AppColors {
static colors = {main_color: "#FFEB3B", secondary_color: "#FFC107"}
}
在其他文件中,需要从哪里获取此颜色
import { AppColors } from './main.js';
class AnotherPage {
constructor() {
super();
console.log(AppColors.colors); // youla! You will see your main and secondary colors :)
}
}
您可以将这些值存储在父组件状态中。然后通过道具或上下文/或类似@Jakemmarsh-suggered-use/approach传递更改这些值的方法
或者,你可以使用。它对于存储令牌等应用程序数据非常有用。步骤1。创建
ConstantFile.js
文件并放入此代码
export class ConstantClass {
static webserviceName = 'http://172.104.180.157/epadwstest/';
static Email = 'emailid';
static Passoword = 'password';
}
第二步。访问权限如下所示。但在此之前,您需要将js文件导入到特定的类文件中
import { ConstantClass } from './MyJS/ConstantFile.js';
ConstantClass.webserviceName
ConstantClass.Email
ConstantClass.Passoword
同意这通常是一种反模式,但这并不意味着在任何情况下都不应该使用globals。React Native本身在Javascript中定义了一个名为
\uu DEV\uu
的全局变量。这是如何做到的,我如何才能创建类似的东西,例如\uu MYDEV\uu
?(看起来这可能是不可能的,而且最接近的方法是。)能否在AppColor中添加静态方法或函数,以及如何使用它。