реагируй на родной язык, почему мое состояние не работает?

#javascript #react-native #expo

Вопрос:

Я хочу показать компоненты, когда выбрана одна из трех категорий продуктов.

Это не работает.

  { step === 2 amp;amp; (product.category.category_name === 'clothing') || (product.category.category_name === 'accessoires') || (product.category.category_name === 'shoes') amp;amp; return (<View><Text>Hello</Text></View> ) }
 

Если одежда, аксессуары или обувь существуют, я хочу показать компонент. Это не работает, почему ? Если я сниму все, кроме одежды, тогда это сработает.

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

1. Смешивание amp;amp; и || без надлежащего () использования не является хорошей практикой, и это, скорее всего, приведет к путанице и ошибкам.

Ответ №1:

Я думаю, вам следует лучше связать свои условия amp;amp; и || .

Попробуйте этот код:

 if (step === 2) 
{ 
 if (product.category.category_name === 'clothing' ||
     product.category.category_name === 'accessoires' ||
     product.category.category_name === 'shoes' )
   { 
     return (<View><Text>Hello</Text></View> )
   }
 }
 

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

1. Даже лучший ответ: Создайте массив со значением возможной строки и измените условные обозначения следующим образом: const arrayItems = [‘одежда’,’аксессуары’,’обувь’,’предмет3′,’предмет4′], Затем, если (шаг === 2 amp;amp; arrayItems.включает(product.category.category_name.toLowerCase ())) { возврат (<Вид><Вид><Текст>Привет<Текст></Текст></Текст></Вид> ) }