私はreact-native-device-infoを使用してDeviceLocaleまたはDeviceCountryを取得しています。しかし、アプリを再起動しなくてもDevice-infoを更新できる方法があります。 例:デバイス設定について言語が「英語(US)」に設定されている場合、Device-info camはそれを検出しますが、設定を「英語(CA)」に変更すると、Device-私はアプリを再起動します。デバイス情報を動的に更新するネイティブ
本当にありがとうございます。
私はreact-native-device-infoを使用してDeviceLocaleまたはDeviceCountryを取得しています。しかし、アプリを再起動しなくてもDevice-infoを更新できる方法があります。 例:デバイス設定について言語が「英語(US)」に設定されている場合、Device-info camはそれを検出しますが、設定を「英語(CA)」に変更すると、Device-私はアプリを再起動します。デバイス情報を動的に更新するネイティブ
本当にありがとうございます。
どのように言語の設定を変更していますか?
言語が設定されている場合は、コンポーネントの状態として言語を設定し、言語設定を変更する関数を呼び出すと、setStateを実行してコンポーネントを新しい値で更新します。
アプリから飛び出して言語設定を手動で変更する場合は、おそらくデバイス情報を確認するためのsetIntervalの設定が機能します。
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>
)
}
}
あなたのコンポーネントでこれを置くことができます。
アプリを再起動するまで、DeviceInfoは更新されません。私はそれをユーザーインタラクションによって更新したいと思う。 – Vinay
これは私のコードがやっていることです。ユーザーのやりとり中に 'someFuncToCheckDeviceInfo'を呼び出すだけです。 –
こんにちは、 私は手動で言語を変更しています。 SetIntervalはユーザーアクションではないため、繰り返し実行されます。 以下のコードをユーザーインターフェイス上で(たとえばナビゲーション中に)トリガーする方法を探しています。そのため、1回しか発生しません。 let DeviceInfo = require( 'react-native-device-info'); let locale = DeviceInfo.getDeviceLocale(); – Vinay