开始

意见反馈的页面
image.png
创建页面
image.png

image.png
页面配置,设置页面的标题。app端默认不显示滚动条。
image.png

  1. "style" :
  2. {
  3. "navigationBarTitleText": "意见反馈",
  4. "enablePullDownRefresh": false,
  5. "app-plus": {
  6. "scrollIndicator": "none"
  7. }
  8. }

页面打开事件
image.png

  1. {
  2. icon: "",
  3. name: "意见反馈",
  4. clicktype: "navigateTo",
  5. url: "../../pages/user-set-helper/user-set-helper"
  6. },

image.png

image.png

页面代码开始

下面的按钮直接复制之前写过的类似的

复制这里的button
image.png

image.png

  1. <button class="user-set-btn" @tap="submit"
  2. type="primary" >完成</button>

image.png

  1. @import url('@/common/form.css');

外层加一个view class是body
image.png

  1. <view class="body">
  2. <button class="user-set-btn" @tap="submit"
  3. type="primary" >完成</button>
  4. </view>

折叠官方给了一个扩展
image.png

image.png
我们选择这个动画的
image.png
找到这个文件
本机的路径:
D:\demos\uni-app\hello-uni-app2022\pages\extUI\collapse\collapse.vue
image.png

image.png

  1. <uni-collapse >
  2. <uni-collapse-item title="使用动画" :show-animation="true">
  3. <view class="content">
  4. <text class="text">默认开启组件动画,使用动画效果折叠内容会有一个从上到下的动画。</text>
  5. </view>
  6. </uni-collapse-item>
  7. <uni-collapse-item title="不使用动画" :show-animation="false">
  8. <view class="content">
  9. <text class="text">设置 show-animation="false",关闭当前组件动画效果。</text>
  10. </view>
  11. </uni-collapse-item>
  12. </uni-collapse>

2022年最新官方demo的代码不再需要单独引用这几个组件。因为默认已经引用了uni-ui的所有的组件了。可以直接就是用。

这是引用了官方的两个自定义的组件
image.png
里面还引用了其他的组件。
image.png
复制到我们的项目里
image.png
把这里的uniIcon组件换成我们当前这个项目的路径。
image.png
引入这两个组件
image.png
注册组件
image.png

image.png
展开
image.png

初始化数据
image.png
随便先填充一些数据
image.png

  1. list:[
  2. {
  3. title:"客服什么时候上线?",
  4. content:"123"
  5. },
  6. {
  7. title:"忘记账号/昵称/密码怎么办?",
  8. content:"111111111"
  9. },
  10. {
  11. title:"怎么搜索/查找/关注/取关用户?",
  12. content:"222222"
  13. }
  14. ]

v-for循环

image.png

  1. <uni-collapse>
  2. <block v-for="(item,index) in list" :key="index">
  3. <uni-collapse-item :title="item.title" :show-animation="false">
  4. <view class="content">
  5. <text class="text">{{item.content}}</text>
  6. </view>
  7. </uni-collapse-item>
  8. </block>
  9. </uni-collapse>

image.png

点开居然没有数据。这个应该是官方组件的bug。
2022年最新的官方组件的代码,并没有这个BUG,所以后面可以不用看了。直接看本机代码即可。
image.png
我们把内容放在item的外面。
image.png

image.png
这个组件这里定义了插槽。出现问题的原因,应该就是slot插槽这里的值没有传入组件内。
image.png

换一种方法解决问题

扩展组件
image.png
为了不影响组件本身,所以这里我们判断contentdata有值 才去输出这段view的内容。
image.png

image.png

image.png

image.png

内容都出来了
image.png

出现问题的原因可能是uni-collapse里面有插槽,uni-collapse-item里面也有插槽,这两个引起的。可能只有一个插槽就不会有这种问题了。
image.png

本节代码

  1. <template>
  2. <view>
  3. <view class="body">
  4. <uni-collapse>
  5. <block v-for="(item,index) in list" :key="index">
  6. <uni-collapse-item :title="item.title" :show-animation="false">
  7. <view class="content">
  8. <text class="text">{{item.content}}</text>
  9. </view>
  10. </uni-collapse-item>
  11. </block>
  12. </uni-collapse>
  13. <button class="user-set-btn" @tap="submit" type="primary">完成</button>
  14. </view>
  15. </view>
  16. </template>
  17. <script>
  18. export default {
  19. data() {
  20. return {
  21. list: [{
  22. title: "客服什么时候上线?",
  23. content: "123"
  24. },
  25. {
  26. title: "忘记账号/昵称/密码怎么办?",
  27. content: "111111111"
  28. },
  29. {
  30. title: "怎么搜索/查找/关注/取关用户?",
  31. content: "222222"
  32. }
  33. ]
  34. }
  35. },
  36. methods: {
  37. }
  38. }
  39. </script>
  40. <style>
  41. @import url('@/common/form.css');
  42. </style>

结束