簡體   English   中英

傳入 object 作為道具反應

[英]Pass in object as prop react

我有一個 function class:

function TopicBox({topicName, article1}) {
    return (
        <div className="TopicBox">
            <h1>{topicName}</h1>
            <div className="topicDivider" />
            <Article 
                    articleImageLink={article1.imageLink} />

--MORE CODE--
export default TopicBox

正如你所看到的,它接受了props topicName,它只是一個字符串,以及article1,它是一個object。 article1 變量將具有子組件,例如在最后一行代碼中看到的 .imageLink。 現在在另一個名為我想創建一個主題框的文件上,如下所示:

<TopicBox topicName="Hi" 
                        article1={imageLink:"google.com",
                                title:"hi"}/>

所以 topicName 道具只是一個字符串,所以它工作正常。 現在我正在創建一個名為 article1 的新 object,其中包含子變量 imageLink。 但是,此代碼不起作用。 我收到以下錯誤:

Parsing error: Unexpected token, expected "}"

  10 |             <div className="TopicLists">
  11 |                 <TopicBox topicName="Hi" 
> 12 |                         article1={imageLink:"google.com",
     |                                            ^
  13 |                                 title:"hi"}/>
  14 |                 <TopicBox />

所以為了調試,當我創建子 object 時,我嘗試將:替換為 a =,但我得到另一個錯誤:

'imageLink' is not defined.eslintno-undef

你能告訴我如何傳遞一個 object 作為道具嗎?

謝謝!

試試這個方法

<TopicBox
  topicName="Hi"
  article1={{ imageLink: "google.com", title: "hi" }}
></TopicBox>

你可以這樣做;

const article1 = {imageLink: "google.com", title: "hi"}
<TopicBox
  topicName = "Hi"
  article1 = {article1} />

另一種方法是使用擴展運算符將 object 屬性作為單獨的道具傳遞;

const article1 = {imageLink: "google.com", title: "hi"}
<TopicName 
  topicName = "Hi"
  {...article1} />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM