Как изменить язык с помощью локализации react native?

#javascript #reactjs #react-native #localization #react-native-android

#javascript #reactjs #локализация #react-native

Вопрос:

Я следую этому документу для реализации метода перевода языка в моем приложении. Есть выпадающий список для выбора языка, и я попытался утешить значение, полученное из выпадающего списка, а затем передать его onChangeText функции. Я использую два набора языков, таких как английский и арабский, но при переключении языка с английского на арабский язык не меняется на арабский.Ниже приведена часть кода для локализации.Пожалуйста, помогите мне разобраться с ошибкой.Спасибо!

stringsoflanguages.js

 const strings = new LocalizedStrings({
    "English": {
        phone_number: "Phone Number",
        register: "REGISTER/LOGIN",
        plumber: "Plumber",


    },
    "Arabic": {
        phone_number: "رقم الهاتف",
        register: "التسجيل/الدخول",
        plumber: "سباك",
    }
export default strings;
  

register.js

 import stringsoflanguages from './stringsoflanguages';
  const lang = [

            { value: 'English' },
            { value: 'Arabic' },

        ];
        language = lang;

 onChangeText(text) {

        console.log(text);

        stringsoflanguages.setLanguage(text);
    }
 ....
   .....

              <Dropdown
               label="Choose Language"
               data={language}
               textColor="#fff"
               selectedItemColor="#000"
              onChangeText={this.onChangeText}
                    />

                <Input
                 label="Phone Number"
                placeholder={stringsoflanguages.phone_number} />

                <Button onPress={() => this.onPressRegister()}>
                <Text>{stringsoflanguages.register</Text>
                </Button>
  

Комментарии:

1. В документах говорится, что вам нужно вызвать this.setState({}); после настройки языка, скорее всего, для принудительного повторного рендеринга.

2. Я пробовал это, но получаю ошибку this.setState , которая не определена

3. Ну, вы должны правильно привязать функцию. Самый простой способ — заменить onChangeText(text) { на onChangeText = (text) => { при условии, что ваша среда поддерживает это. (Хотя это общеизвестно в React и не имеет никакого отношения к вопросу.)

4. Да, это работает, большое спасибо за помощь 🙂

5. Также я сомневаюсь, как мне передать это значение и на следующие страницы. Мне нужно передать this.state.text или просто text ?