Vue.js 不知道如何将 props 传递给 map() 函数和循环组件

Posted

技术标签:

【中文标题】Vue.js 不知道如何将 props 传递给 map() 函数和循环组件【英文标题】:Vue.js don't know how to pass props to map() function and looping components 【发布时间】:2021-03-17 00:27:37 【问题描述】:

我是 Vue 的初学者,我正在尝试将这段 React 代码转换为我的 Vue 应用程序,我正在努力修复它。我正在使用 map() 函数循环一个对象并将道具传递给它。

反应

<div className='directory-menu'>
  this.state.sections.map(( id, ...otherSectionProps ) => (
    <MenuItem key=id ...otherSectionProps />
  ))
</div>

我有这个状态对象:

 this.state = 
      sections: [
        
          title: 'hats',
          imageUrl: 'https://i.ibb.co/c***tL1/hats.png',
          id: 1,
          linkUrl: 'hats'
        , // the other elements continue

Vue 我想做同样的事情:

<template>
  <div class="directory-menu">
     
     sections.map(() => (
      <MenuItem :key="sections.id" v-bind="sections" />
     ))
    
  </div>
</template>

道具的来源数据:

<script>
  import MenuItem from '../Menu-Item/MenuItem.vue';
  export default 
    components:
      MenuItem
    ,
    data()
      return
        sections: [
          
            title: 'hats',
            imageUrl: 'https://i.ibb.co/c***tL1/hats.png',
            id: 1,
            linkUrl: 'hats'
          , // the other elements continue

我不知道我是否未能使用扩展运算符 v-bind 或其他我缺少的东西传播道具。

【问题讨论】:

在 vue 中你使用 v-for 【参考方案1】:

你应该在 vuejs 中使用v-for 来渲染一个列表:

<div class="directory-menu">
    <MenuItem  v-for="section in sections" :key="section.id"/>
</div>

【讨论】:

以上是关于Vue.js 不知道如何将 props 传递给 map() 函数和循环组件的主要内容,如果未能解决你的问题,请参考以下文章

将 props 传递给 Vue-router 实例化的 Vue.js 组件

Vue.js - 如何将 prop 作为 json 数组传递并在子组件中正确使用?

html Props vue.js将数据从Vue.app根传递给子Ninja.vue

vue.js 如何将 props 与单个文件组件一起使用

Vue.js2.0中子组件修改父组件传递过来的props,并不影响父组件的原始数据

Vue js将HTML按钮名称属性作为PROPS传递