簡體   English   中英

ReactJS - map 內的 Map

[英]ReactJS - Map inside a map

我正在開發 ReactJS 和 Redux 應用程序。 在某些時候,我有一個元素列表(注釋),每個元素都有一個數組(子任務)。 我想顯示所有元素,並為每個元素顯示其數組的內容。

我試過這個:

 render(){
    return(
        <div>
            <h3>{this.props.match.params.user}'s board</h3>

            <Link to={`/settings/${this.props.match.params.user}`}>
                <button>Settings</button>
            </Link>

            <Link to={`/new/${this.props.match.params.user}`}>
                <button>Add note</button>
            </Link>

            {
                this.props.notes.map((item,index) => 
                    <Link to={`/details/${item.name}`}>
                        <h4 key={index}>{item.name}</h4>

                        item.subtasks.map((sub, subindex)=>
                            <p key={subindex}>{sub}</p>)

                    </Link>
                )
            }
        </div>
    );
}

但我得到了:

未捕獲的 ReferenceError:未定義子索引

正確的方法是什么?

你需要像這樣在{}括號內包裝第二張map

{
    this.props.notes.map((item,index) => 
        <Link to={`/details/${item.name}`}>
            <h4 key={index}>{item.name}</h4>

            { 
                item.subtasks.map((sub, subindex) =>
                    <p key={subindex}>{sub}</p>)
            }

        </Link>
    )
}

Vanilla JavaScript為例,您可以根據需要實現相同的反應方式。

 let users = [ { name: "Amoos", skills: ["PHP", "MySQL"] }, { name: "Rifat", skills: ["JavaScript", "React", "HTML"] } ]; users.map(( user, index ) => { console.log(`User: ${user.name}`) { user.skills.map(( skill, subIndex) => { console.log(`Skill # ${subIndex}: ${skill} `) }) } } )

暫無
暫無

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

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