2016-11-28 78 views
0

我正在使用react-native-device-info来获取DeviceLocale或DeviceCountry。但有没有一种方法可以在重新启动应用程序时更新设备信息。 例如,在设备设置上如果我的语言设置为“英语(美国)”,则设备信息凸轮会检测到该设置,但如果将设置更改为“英语(CA)”,则设备信息无法捕获我重新启动应用程序。动态更新设备信息原生

任何帮助非常感谢。

回答

0

你如何改变语言的设置?

如果它是内置的......你可以做一些事情,比如将语言设置为组件的状态,并且一旦调用函数来更改语言设置,就可以设置状态并且它将用新值更新组件。

如果您正在讨论跳出应用程序并手动更改语言设置,则可能会设置创建setInterval来检查设备信息是否可用。

+0

嗨马特, 我正在手动更改语言。 SetInterval不是一个用户操作,所以它会一直重复。 我正在寻找一种方法来触发用户界面上的下面的代码(例如,在导航时)。因此,它只发生一次。让DeviceInfo = require('react-native-device-info'); let locale = DeviceInfo.getDeviceLocale(); – Vinay

0

假设你在组件的类定义之外定义对DeviceInfo的引用,你可以尝试像这样在里面移动它。

class MyComponent extends React.Component { 
    checkDeviceInfo() { 
    let DeviceInfo = require('react-native-device-info'); 
    let locale = DeviceInfo.getDeviceLocale(); 
    // do something with locale 
    } 

    render() { 
    return (
     <TouchableOpacity onPress={this.checkDeviceInfo.bind(this)}> 
     <Text>Touch Here</Text> 
     </TouchableOpacity> 
    ) 
    } 
} 

以便它只要你想检查DeviceInfo变化叫你可以把这个在你的组件。

+0

DeviceInfo不会被更新,直到我们重新启动应用程序。我想通过用户交互来更新它。 – Vinay

+0

你可以..这就是我的代码在做什么..只需在用户交互过程中调用'someFuncToCheckDeviceInfo'。 –