這是我的代碼:
function Information({
rating,
imax,
audiodescription,
closedcaptioning,
releaseyear,
runtime,
}) {
const runtimeHours = Math.round(runtime / 60);
const runtimeMinutes = runtime % 60;
const ratingImage = '/images/rating-' { rating } '.png';
const ratingAlt = 'rated' { rating };
return (
<Container>
<img src={ratingImage} alt={ratingAlt} />
{imax && (
<img
src="/images/icon-imaxenhanced.png"
alt="IMAX enhanced"
height="20px"
/>
)}
{audiodescription && (
<img src="/images/icon-ad.png" alt="Audio Description" height="20px" />
)}
{closedcaptioning && (
<img src="/images/icon-cc.png" alt="Closed Captioning" height="20px" />
)}
{releaseyear} ? {runtimeHours && { runtimeHours } 'h'}
{runtimeMinutes}m
</Container>
);
}
只要我只是吐出重組后的變數,一切都很好。也就是說,imax、audiodescription、closedcaptioning 和 releaseyear 都可以正常作業。奇怪的是,runtimeMinutes 也是如此。另一方面, ratingImage、 ratingAlt 和 runtimeHours 都呈現為物件。我試過了...
const ratingImage = '/images/rating-' { JSON.stringify(rating) } '.png';
const ratingAlt = 'rated' { JSON.stringify(rating) };
和
const ratingImage = '/images/rating-' { rating.toString() } '.png';
const ratingAlt = 'rated' { rating.toString() };
但兩者都拋出錯誤。
至于runtimeHours,我完全不知所措。
我知道有一個簡單的解釋,但我就是看不到。
uj5u.com熱心網友回復:
這些行沒有做你期望他們做的事情:
const ratingImage = '/images/rating-' { rating } '.png';
const ratingAlt = 'rated' { rating };
如果連接字串 ( 'rated') 和類似于物件 ( { rating }) 的內容,則物件將被強制轉換為字串:[object Object]。

如果rating是一個字串,你可以試試這個(
請注意,它是普通的 JS 代碼,而不是 JSX。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379560.html
上一篇:當我有一個帶有id的陣列時,如何使用angular發布一個帶有某個物件的陣列
下一篇:如何正確使用物件而不是多個引數?
