Я новичок в ответном скрипте native и java. Я хотел бы проверить, когда элемент в моей панели инструментов равен "A" (когда какой-то орган выбирает A), то свойство touchable становится ложным. Я написал это следующим образом:
init: function( pThis ) {
toolbarActiveItem: 'test',
this.state = {
toolbar: [
{
id: 5,
name: 'test',
description: I18n.t('test'),
if(this.item=='A'){
isTouchable: false,
}
else {
isTouchable: true,
}
onOpen: (item) => { this.onToolbarOpen(pThis,item) },
},
],
};
this.onToolbarOpen(pThis);
},
Однако я получил ошибку в синтаксисе. Следует отметить, что код работает без условия if. Можете ли вы помочь мне решить эту проблему.
Вы не можете поставить оператор if
в середине литерала объекта.
Вы можете построить его в два этапа:
var obj = {};
if (foo) {
obj.bar = 1;
} else {
obj.bar = 2;
}
// then pass 'obj' somewhere
Вы можете использовать тернарный оператор:
isTouchable: ( this.item=='A' ? true : false ),
... но так как сравнение равенства дает вам логическое значение, было бы просто просто назначить это:
isTouchable: ( this.item == 'A' )
элемент toolbar
- это объект, в котором вы не можете использовать оператор if. Вам придется использовать объявленную ранее переменную, которую вы можете заполнить позже:
init: function( pThis ) {
var touchable;
if(this.item=='A'){
touchable = false,
}
else {
touchable = true,
}
toolbarActiveItem: 'test',
this.state = {
toolbar: [
{
id: 5,
name: 'test',
description: I18n.t('test'),
isTouchable: touchable,
onOpen: (item) => { this.onToolbarOpen(pThis,item) },
},
],
};
this.onToolbarOpen(pThis);
},