Первая проблема заключается в том, что attachments[0]
вернет строку, а не объект со свойством url
. Таким образом, вы можете использовать тип string | boolean
. Есть ли конкретная c причина, по которой вы хотите обернуть его в объект?
Если вы используете string | boolean
, вы можете сделать src={image}
Редактировать:
Вы можете даже улучшить это даже больше, просто не использование логического значения вообще и использование факта, что null
является ложным значением. Тогда вы можете сделать это.
const image: string = attachments.length > 0 ? attachments[0] : null;
return (
{image && <img className={style.img} src={image} alt="timeline" />}
);
Редактировать 2:
Как оказалось, свойство attachments
в MessageCardProps
не должно быть массивом строки, но массив объектов со свойством под названием «URL». Вот как это должно выглядеть:
interface MessageCardProps {
message: {
id: string;
title: string;
content: string;
attachments: {URL: string}[];
interest_count: number;
};
}
Теперь, чтобы получить первое изображение, вы можете сделать это:
const image: string = attachments.length > 0 ? attachments[0].URL : null;