возвращает неопределенный тег вместо рендеринга html

#html #reactjs #jsx

#HTML #reactjs #jsx

Вопрос:

у меня есть компонент

  import React from 'react'

export default function FilterRow (props){
 return (
   <div className="d-flex flex-row justify-content-between align-items-baseline">
     <label className="label-filter text-capitalize" htmlFor={props.id}>{props.text}</label>
     <button id={props.id} className="btn-filter" type="button" data-toggle="collapse" data-target={props.target}
      name={props.name}  onClick={props.buttonHandler}>
       { props.btnValue ?  "-"  :  " " } 
     </button>
   </div>
  )
}
  

и родительский компонент, который передает реквизиты и функции этому компоненту
функция:

   handleButtonStates = (event , prevState) => {
    const { name  } = event.target
    console.log("hi from" , name );
    this.setState(prevState => {
        return {[name] : !prevState[name]}
    })
  }
  

использование в родительском компоненте:

 <FilterRow  id="sort-btn" text="sort by" btnValue={this.state.sortBtn}
                            buttonHandler={this.handleButtonStates} target="#collapseSort" name="sortBtn"/>
  

когда я использую эту функцию для условного рендеринга — и , она работает нормально
но когда я меняю — и на значках fas или любом другом html-теге, подобном этому

 { props.btnValue ?  <label>y</label>  :  <label>no</label> } 
  

функция начинает возвращать неопределенный вместо названия кнопки, почему это так работает и как я могу это исправить?

Ответ №1:

Некоторые опечатки в вашем коде:

 Labe => label and <Label => <Label>