React Native 有全局作用域吗?如果不是,我该如何模仿呢?
Does React Native have global scope? If not, how can I mimic it?
我没能找到类似
的内容
$rootScope
对于 React Native,我想在不同的视图之间共享几个变量。
在全局范围内存储变量在 React 中有点反模式。 React 旨在与单向数据流一起使用,这意味着数据从组件流向它们的子组件。这是通过 the passing of props.
实现的
为了在多个视图之间共享一个值,您需要将数据存储在共享的父组件上并将其作为 prop
向下传递,或者将其存储在负责数据管理。在 ReactJS 中,这是通过 Flux 等模式实现的,但我不确定 react-native 的选项。
例如,您可以导出 class 静态属性,然后在需要时导入。
在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建议的那样 - 使用 Flux/Redux 方法。
或者,您可以使用 AsyncStorage。它可用于存储令牌等应用程序数据。
第 1 步。创建 ConstantFile.js
文件并放入此代码。
export class ConstantClass {
static webserviceName = 'http://172.104.180.157/epadwstest/';
static Email = 'emailid';
static Passoword = 'password';
}
第二步,如下访问。但在此之前,您需要 import
您的 js 文件到特定的 class 类似的文件
import { ConstantClass } from './MyJS/ConstantFile.js';
ConstantClass.webserviceName
ConstantClass.Email
ConstantClass.Passoword
我没能找到类似
的内容$rootScope
对于 React Native,我想在不同的视图之间共享几个变量。
在全局范围内存储变量在 React 中有点反模式。 React 旨在与单向数据流一起使用,这意味着数据从组件流向它们的子组件。这是通过 the passing of props.
实现的为了在多个视图之间共享一个值,您需要将数据存储在共享的父组件上并将其作为 prop
向下传递,或者将其存储在负责数据管理。在 ReactJS 中,这是通过 Flux 等模式实现的,但我不确定 react-native 的选项。
例如,您可以导出 class 静态属性,然后在需要时导入。
在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建议的那样 - 使用 Flux/Redux 方法。
或者,您可以使用 AsyncStorage。它可用于存储令牌等应用程序数据。
第 1 步。创建 ConstantFile.js
文件并放入此代码。
export class ConstantClass {
static webserviceName = 'http://172.104.180.157/epadwstest/';
static Email = 'emailid';
static Passoword = 'password';
}
第二步,如下访问。但在此之前,您需要 import
您的 js 文件到特定的 class 类似的文件
import { ConstantClass } from './MyJS/ConstantFile.js';
ConstantClass.webserviceName
ConstantClass.Email
ConstantClass.Passoword