Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Скобки горят красным vs code

React, вроде все закрыто, но все равно выдает ошибку синтаксиса из-за красных скобок, если ставлю скобки подряд все норм, а когда вставляю между ними код вот такая штука

По дате
По рейтингу
Аватар пользователя
Новичок
4мес

И правильно горят.

В JavaScript ТРИ вида кавычек, обрамляющих строки. И подстановка выражений работает только в строках, обрамлённых обратными слешами: `...`.

Аватар пользователя
Мастер
4мес

Ошибка в className, а именно в логике присваивания классов.

123456789101112131415161718
 function Button({ type, title, disable, onClick }) { 
  return ( 
    <button 
      className={`btn ${ 
        type === "add" ? "add" : 
        type === "remove" ? "remove" : 
        type === "checkout" ? "checkout" : "" 
      }`} 
      disabled={disable} 
      onClick={onClick} 
    > 
      {title} 
    </button> 
  ); 
} 
 
export default Button; 
 

Так проще

Аватар пользователя
Профи
4мес

Рекомендую использовать библиотеку classnames, чтобы более читаемый стиль сделать, который удобно вынести в переменную

12345678
 const buttonClass = classNames('btn', {
  ['add']: type === 'add',
  ['remove']: type === 'remove'
})

return (
  <button className={buttonClass}>{title}</button>
) 

А если тип всегда влияет на класс, то просто тип и подставлять

1
 function Button({ type = '', title, disable, onClick })  
1
 <button className={`btn ${type}`}></button>