В настоящее время я пытаюсь изменить необходимый атрибут на основе нескольких сценариев. Итак, у меня есть созданное поле ввода с обязательным атрибутом как newAccRequire, но по умолчанию оно получает истинное значение.

Но если я прямо запрограммировал required="false", он работает, как и ожидалось.

Составная часть

<aura:attribute name="newAccRequire" type="String" default="false"/>
<lightning:input aura:id="createNewAcc" type="String" name="inputAccName" 
                                 label="" value="{!v.leadRecord.Company}" 
                                 required="{!v.newAccRequire}"
                                 />

Я проверил все ссылки на это поле на контроллере или помощнике, но я не использую это поле. Любая идея, почему поле стало обязательным автоматически.

Я пробовал решение, но в некоторых ситуациях оно ломается. тем не менее, в некоторых ситуациях он считается истинным. любая идея?

Снимок экрана: введите здесь описание изображения

Мой JS-контроллер

console.log('@@@@Befor_exsiting_Search@@@@'+component.get('v.newAccRequire'));
    component.set("v.newAccRequire","false");
console.log('@@@@exsiting_Search@@@@'+component.get('v.newAccRequire'));
0
Pavan tej 27 Окт 2021 в 23:05

1 ответ

Лучший ответ

Атрибут, на который вы ссылаетесь, должен иметь тип < /a> "Boolean" для представления значений true/false. В JavaScript все непустые строки являются правдивыми, поэтому, если вы используйте тип атрибута String, он будет вести себя иначе, чем если бы вы объявили атрибут как тип Boolean.

2
sfdcfox 27 Окт 2021 в 22:36
1
Хороший ответ, я только что добавил немного из ответа, который писал. Добро пожаловать в СФСЭ! Если вы еще этого не сделали, прочитайте Как ответить и пройдите тур. С нетерпением жду будущих вкладов от вас.
 – 
sfdcfox
27 Окт 2021 в 22:38
Спасибо, @sfdcfox! Я скрывался и использовал несколько ваших вкладов, чтобы помочь решить мои проблемы в прошлом. Я надеюсь получить еще больше информации, взаимодействуя непосредственно с SFSE. Ваше здоровье!
 – 
normanthewhale
27 Окт 2021 в 22:43
Ваше решение сработало частично, не могли бы вы взглянуть на это
 – 
Pavan tej
27 Окт 2021 в 23:05
1
Вы устанавливаете строку 'false' в свой атрибут (у нее есть кавычки). Вы должны использовать логическое значение false (без кавычек).
 – 
sfdcfox
27 Окт 2021 в 23:31
1
component.set("v.newAccRequire",false); в частности. Помните, что при использовании строк любой длины они будут оцениваться как правдивые в javascript.
 – 
normanthewhale
27 Окт 2021 в 23:38