Яваскрипт можно превратить const в функцию с выходом [закрыто]

В дополнение к тому, что уже было сказано, строковые литералы [т.е. строки, подобные "abcd", но не похожие на new String("abcd")] в Java, интернированы - это означает, что каждый раз, когда вы ссылаетесь на «abcd», вы получаете ссылку на один экземпляр String, а не новый каждый раз. Таким образом, у вас будет:

String a = "abcd";
String b = "abcd";

a == b; //True

, но если у вас есть

String a = new String("abcd");
String b = new String("abcd");

, то возможно иметь

a == b; // False

(и в случае необходимости Напоминаем, всегда используем .equals() для сравнения строк, == тестов для физического равенства).

Interning Строковые литералы хороши, потому что они часто используются более одного раза. Например, рассмотрим (надуманный) код:

for (int i = 0; i < 10; i++) {
  System.out.println("Next iteration");
}

Если бы у нас не было интернирования строк, «Следующая итерация» нужно было бы создать 10 раз, тогда как теперь он будет создан только один раз .

-4
задан Jack Bashford 19 March 2019 в 08:53
поделиться

2 ответа

Если вы хотите манипулировать своим значением перед его использованием, но не можете объявить const в JSX, определите функцию для манипулирования им. Это просто и понятно:

doSomethingWithGender(gender) {
    return gender + "some extra text";
}

render() {
    return <div>
        { this.doSomethingWithGender(this.props.form.getFieldValue('product_gender')) }
    </div>
}
0
ответ дан JLRishe 19 March 2019 в 08:53
поделиться

Просто измените определение вашей переменной:

const x = this.props.form.getFieldValue('product_gender', x => console.log(x));
0
ответ дан Jack Bashford 19 March 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: