2016-11-28 5 views
0

私はreact-native-device-infoを使用してDeviceLocaleまたはDeviceCountryを取得しています。しかし、アプリを再起動しなくてもDevice-infoを更新できる方法があります。 例:デバイス設定について言語が「英語(US)」に設定されている場合、Device-info camはそれを検出しますが、設定を「英語(CA)」に変更すると、Device-私はアプリを再起動します。デバイス情報を動的に更新するネイティブ

本当にありがとうございます。

答えて

0

どのように言語の設定を変更していますか?

言語が設定されている場合は、コンポーネントの状態として言語を設定し、言語設定を変更する関数を呼び出すと、setStateを実行してコンポーネントを新しい値で更新します。

アプリから飛び出して言語設定を手動で変更する場合は、おそらくデバイス情報を確認するためのsetIntervalの設定が機能します。

+0

こんにちは、 私は手動で言語を変更しています。 SetIntervalはユーザーアクションではないため、繰り返し実行されます。 以下のコードをユーザーインターフェイス上で(たとえばナビゲーション中に)トリガーする方法を探しています。そのため、1回しか発生しません。 let DeviceInfo = require( 'react-native-device-info'); let locale = DeviceInfo.getDeviceLocale(); – Vinay

0

DeviceInfoへの参照をコンポーネントのクラス定義の外に定義していると仮定すると、このように内部を移動できます。それはあなたが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> 
    ) 
    } 
} 

あなたのコンポーネントでこれを置くことができます。

+0

アプリを再起動するまで、DeviceInfoは更新されません。私はそれをユーザーインタラクションによって更新したいと思う。 – Vinay

+0

これは私のコードがやっていることです。ユーザーのやりとり中に 'someFuncToCheckDeviceInfo'を呼び出すだけです。 –

関連する問題