stevenjin 2025-01-20 23:40 采纳率: 96.8%
浏览 9
已结题

card-actions-item没有出来,不知错哪了

card-actions-item没有出来,不知错哪了,以下是需求:
1.在container的view下,生成多个uni-card
2.uni-card中的slot不固定个数,且其text值来源于动态数据


    <template>
        <view class="container">
            <view v-for="(item, index) in cardsData" :key="index" class="card-container">
              <uni-card :title="item.title" :extra="item.extra" :thumbnail="avatar" @click="onClick">               
              <view slot="actions"    class="card-actions">
                  <view 
                    v-for="(action, actionIndex) in cardsData.actions"
                       class="card-actions-item"                     
                       :key="actionIndex"
                       @click="actionsClick('S')">
                        <uni-icons 
                            :type="action.icon" 
                            size="18" 
                            color="#999">
                        </uni-icons>
                        <text>aa</text>
                    </view>                    
                </view>    
                </uni-card>
               </view>
              </uni-card>
            </view>
          </view>

            
        </template>

    <script>
        export default {
            data() {
                return {
                    avatar: '/static/actuator2.png',
                    cardsData: [
                        { 
                            title: 'ps' ,
                            subtitle:'12ml',
                            extra:'OFF(%0)',
                            rate:'89(0R/M)',                            
                            actions:[ // 动作项数组,可以根据实际情况调整数据格式和内容
                                        { icon: 'arrow-down', text: 'apple', action: 'S' },
                                        { icon: 'arrow-down', text: 'Pump', action: 'Start' }, 
                                    ]
                            }
                      ]
                };
            }
        }
    </script>

  • 写回答

4条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码来看,似乎有一些问题需要解决:

    1. 在你的代码中,你试图在 uni-card 内部使用两次 view 标签来创建多个 uni-card 实例,但实际上你只需要在外部使用一次 view 标签就足够了。你可能需要把内部循环里的 uni-card 标签移出外层循环,以便于正确地创建多个 uni-card 实例。

    2. 在你的代码中,你试图在 slot="actions" 中嵌套另一个循环来生成动作项(card-actions-item),但在这种情况下你需要确保你的数据结构允许这样做。在你的例子中,cardsData.actions 应该是一个二维数组,每个 cardData 对象都包含一个动作项数组。然后你可以在每个 uni-card 中使用内层循环来生成动作项。

    修正后的代码可能如下:

    <template>
        <view class="container">
            <view v-for="(cardData, index) in cardsData" :key="index" class="card-container">
                <uni-card :title="cardData.title" :extra="cardData.extra" :thumbnail="avatar" @click="onClick">               
                    <view slot="actions" class="card-actions">
                        <view v-for="(action, actionIndex) in cardData.actions" :key="actionIndex" class="card-actions-item" @click="actionsClick(action)">
                            <uni-icons :type="action.icon" size="18" color="#999"></uni-icons>
                            <text>{{ action.text }}</text> <!-- 这里用动态绑定的方式显示动作项的文本 -->
                        </view>                    
                    </view>    
                </uni-card>               
            </view>
        </view>
    </template>
    

    注意,我在 <text> 标签中使用了动态绑定 {{ action.text }} 来显示动作项的文本。这样,你就可以从动态数据中获取文本值了。此外,请确保你的数据结构允许这样做,即每个动作项对象都应包含 icontext 属性。你也需要修改 actionsClick 方法来接受动作项对象作为参数,例如 actionsClick(action)。这样你就可以在方法内部访问该对象的属性了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 已采纳回答 1月21日
  • 创建了问题 1月20日