在我的 React-Native 应用程序中;我在一个名为:
constants.js
的组件中声明了一个 const 变量,如下所示
export const IS_VIA_DEEP_LINK = false
现在,
在我的
Splashscreen.js
中,我正在做如下:
constants.IS_VIA_DEEP_LINK=true;
当我尝试在同一个
Splashscreen.js
或任何其他功能组件中访问 IS_VIA_DEEP_LINK 的值时,我会得到更新的值 - true。
怎么可能?
最简单的方法是使用 react-native-async-storage:
const storeData = async (value) => {
try {
await AsyncStorage.setItem('IS_VIA_DEEP_LINK', value);
} catch (e) {
// saving error
}
};
const getData = async () => {
try {
const value = await AsyncStorage.getItem('IS_VIA_DEEP_LINK');
if (value !== null) {
// value previously stored
}
} catch (e) {
// error reading value
}
};
您可以在项目的任何地方使用以上 2 个功能
您无法更改原始常量变量的值。 JavaScript 中的基本类型有
string
、number
、bigint
、boolean
、undefined
、symbol
和 null
。
将
IS_VIA_DEEP_LINK
变量定义为 let
。
export let IS_VIA_DEEP_LINK = false
如果您想将变量保留为常量,请将其放入对象中并导出该对象。由于对象是通过引用存储的,因此即使对象定义为常量,您也可以更改它们的值。
export const constants = {
IS_VIA_DEEP_LINK: false
}
constants.IS_VIA_DEEP_LINK = true