Написание условия If в React

Я пытаюсь написать оператор if внутри цикла, но он выдает ошибку. Я пробовал использовать {}, но он тоже не работает, как мне его правильно написать.

`<Option
      optionText = {option}      

 colorText = {props.colors[index]}
      priceText = {props.prices[index]}
      rangeText = {props.ranges[index]}
      domainText = {props.domains[index]}

    if (this.props.colorText == this.props.domainText){
      //I want to write a if condition here but it says Identifier expected
    }
      count= {index + 1}
      handleDeleteOption = {props.handleDeleteOption}
    />
    </div> 
      )) 
    }  
  </div>`

импортировать React из React;

const Option = (реквизиты) => (

<p className = "add-option-color">
  props.rangeText = {(props.colorText == props.domainText) ? props.rangeText : 
    props.domainText}
  {props.count}. Product: {props.optionText} , Color: {props.rangeText} , Price: {props.priceText}</p>


    <button  className = "button button--link" onClick = {(e) => {
        props.handleDeleteOption(props.optionText,props.colorText,props.priceText);
      }}
    >
      remove
    </button>
    <hr></hr>
  </div>
);

export default Option;

какую опору вы хотите применить, если условие верно?

Chris 23.11.2018 10:18

Этот оператор if не находится внутри цикла. Он находится внутри элемента JSX, и вы не можете писать код внутри элемента JSX, если он не указан в качестве значения свойств.

Andreas 23.11.2018 10:19

использовать тернарный оператор

Rajendran Nadar 23.11.2018 10:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
3
71
2

Ответы 2

Чистый способ - использовать тернарный оператор, как в этом примере:

<Option
      optionText = {option}
      colorText = {props.colors[index]}
      priceText = {props.prices[index]}
      rangeText = {props.ranges[index]}
      domainText = {props.domains[index]}
      YOURPROPS = {(this.props.colorText == this.props.domainText) ? VALUEIFTRUE : 
      VALUEIFFALSE}
      count= {index + 1}
      handleDeleteOption = {props.handleDeleteOption}
/>

Зачем тикать ??

Rajendran Nadar 23.11.2018 10:22

Щелчок был ошибочным, я его удалил.

sanjar 02.01.2019 14:29

вы можете вызвать функцию, как показано ниже --->

getAllParams() {
        if (this.props.colorText == this.props.domainText){
          return "pass what you want pass"
        } else {
          return
        }
    }
    render() {    
    <Option
              optionText = {option}      
              colorText = {props.colors[index]}
              priceText = {props.prices[index]}
              rangeText = {props.ranges[index]}
              domainText = {props.domains[index]}
              {...this.getParams()}
              count= {index + 1}
              handleDeleteOption = {props.handleDeleteOption}
        />
    }

Другие вопросы по теме