Как написать условное выражение if-else в реакции jsx

Я пытаюсь создать оператор условия для URL-адреса, по которому щелкнет пользователь, что я хочу сделать, так это проверить, если message.sender.id === user_id, то я хочу изменить URL-адрес на ${/inbox/}${message.reciever.id}${"/"} и если message.sender.id !=== user_id мне нужен URL-адрес ${/inbox/}${message.sender.id}${"/"}

я не знаю, как лучше всего это сделать, потому что URL-адрес должен быть на карте

{
  message.map((message) => (
    <Link className = "chat-contacts-item" to = {message.sender.id === user_id && `${/inbox/}${message.reciever.id}${"/"}`}>
     <p className = "float-left">{message.message}</p>
    </Link>
  )
)}
<Link className = "chat-contacts-item" to = {message.sender.id === user_id &&`${/inbox/}${ message.reciever.id}${'/'}`}> 
    Click Now
</Link>

Это то, что я написал, как написать оператор else здесь

{message.sender.id === user_id && 
  `${/inbox/}${ message.reciever.id}${'/'}`
}
{message.sender.id === user_id ? ${/inbox/}${ message.reciever.id}${'/'} : ${/inbox/}${message.reciever.id}${'/'}} отсутствует обратная кавычка из-за того, как форматируются комментарии, но вам просто нужно добавить их для строк
Anon 20.02.2023 17:42

Вы можете использовать «тройной оператор» `условие === что-то? "правда" : "неправда"`

SlothOverlord 20.02.2023 17:43

если использовать :, он возвращает синтаксические ошибки

Destiny Franks 20.02.2023 17:43

@DestinyFranks Вероятно, вы забыли добавить обратные кавычки. stackoverflow превращает их в поле кода. Убедитесь, что ваши истинные и ложные утверждения заключены в обратные кавычки, как в вашем примере.

SlothOverlord 20.02.2023 17:47

Пожалуйста, ищите официальные документы.

adampweb 20.02.2023 17:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
6
67
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете определить ссылку перед возвратом пользовательского интерфейса, его более читаемого кода. Кроме того, вы можете использовать то же условие внутри to = {..}

Мы называем это тернарным оператором something ? do this : else do this

Я надеюсь, что этот ответ может помочь.

{message.map((message) => {
 const link = message.sender.id === user_id ? `${/inbox/}${message.reciever.id}${"/"}` : `${/inbox/}${message.sender.id}${"/"}`
    return (<Link className = "chat-contacts-item" to = {link}>
                <p className = "float-left">{message.message}</p>
            </Link>
    )
})}
Ответ принят как подходящий
<Link 
  className = "chat-contacts-item" 
  to = {"/inbox/" + (message.sender.id === user_id ? message.reciever.id : message.sender.id) + "/"}
>
    <p className = "float-left">{message.message}</p>
</Link>

Самый чистый способ сделать это, на мой взгляд:

{
    message.map((message) => (
        <Link
            className='chat-contacts-item'
            to = {`${/inbox/}${
                message.sender.id === user_id ? message.receiver.id : message.sender.id
            }${'/'}`}
        >
            <p className='float-left'>{message.message}</p>
        </Link>
    ));
}

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