Как использовать условие if в панели инструментов в java-скрипте

1

Я новичок в ответном скрипте 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. Можете ли вы помочь мне решить эту проблему.

Теги:
react-native

2 ответа

4
Лучший ответ

Вы не можете поставить оператор 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' )
  • 0
    Очень хороший ответ! большое спасибо. только еще один вопрос, что если у меня есть 2 условия. Например, что, если мне нужно проверить элементы A и B одновременно на элементы?
2

элемент 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);
},

Ещё вопросы

Сообщество Overcoder
Наверх
Меню