Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native是否具有全局范围?如果没有,我如何模仿它?_Javascript_Reactjs_React Native - Fatal编程技术网

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中添加静态方法或函数,以及如何使用它。