微信小程序可以将数组读出来,但是不能显示出来,而且appdata中可以查到数组内容

具体代码如下:

img


输出结果为:

img

wxml代码为:

img

效果展示却只有commentList数组长度和值,却没有rcList的值:

img

而且在控制台,连数组所在view都不见了:

img

wx.request success是异步执行的,也就是说List.push/this.setData/console.log的执行时机是不确定的,所以出现这种情况.
你需要在wx.request之前var _this=this;然后在success里面_this.setData()即可

以下内容部分参考ChatGPT模型:


首先,我建议检查一下rcList数组是否有数据。可以在页面的onLoad方法中加入console.log(rcList)来检查数组是否为空。

如果rcList数组不为空,那么可能是在wxml中没有正确地显示出来。可以尝试使用wx:for循环来显示rcList数组中的数据,例如:

<view wx:for="{{rcList}}" wx:key="index">
  <text>{{item}}</text>
</view>

如果rcList数组为空,则需要检查一下数据是否正确地传入到了页面中。可以在页面的onLoad方法中加入console.log(options)来检查数据是否正确地传入。

另外,可以尝试将rcList数组放在commentList数组中,变成一个嵌套的数组,然后在wxml中使用双重wx:for循环来显示数据,例如:

<view wx:for="{{commentList}}" wx:key="index1">
  <view wx:for="{{item.rcList}}" wx:key="index2">
    <text>{{item}}</text>
  </view>
</view>

希望这些方法能够帮助到你解决问题。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快

首先你检查下rcList中是否有数据值,我看你打印出来了,你展开看下里面的comment是否有数据值,我看你的replies是没有值的。

img

其次你循环时取数据的格式可能有问题,因为从你提供的信息来看,rcList中的comment数据好像是一个数组,那你就不能直接写item.comment.username ,你可直接修改为item.comment看看有没有数据出来,有的话,你可以再套一个循环来循环显示item.comment里面的数据

会不会是因为网络请求异步的原因,没获取到数据页面先渲染完了

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据你提供的代码和效果展示,问题可能出在渲染列表上面。你可以尝试使用wx:key来为列表中的每个项指定一个唯一的标识符,这样可以帮助微信小程序更好地跟踪更新。

以下是一个可能的修复方案:

wxml 文件中:

<view class="container">
  <view class="comment-section">
    <view class="title">评论列表</view>
    <view class="comment-list">
      <!-- 使用 wx:key 来为每个 comment 指定唯一的标识符 -->
      <view class="comment" wx:for="{{commentList}}" wx:key="id">
        <view class="avatar"><image src="{{item.avatarUrl}}" /></view>
        <view class="content">
          <view class="username">{{item.username}}</view>
          <view class="text">{{item.text}}</view>
          <!-- 将 rcList 的值输出到页面上 -->
          <view class="rcList">回复:{{item.rcList.join(',')}}</view>
        </view>
      </view>
    </view>
  </view>
</view>

js 文件中:

// 在 onPageLoad 或者其他适当的生命周期函数中设置数据
Page({
  data: {
    // ...
    // 将 rcList 的值赋值给每个 comment
    commentList: [
      {
        id: 1,
        avatarUrl: '',
        username: '',
        text: '',
        rcList: ['Reply1', 'Reply2']
      },
      // ...
    ]
  }
})

修改完后,如果还无法正常显示,请检查以下几点:

  1. 确认数据在 appdata 中已经被正确地赋值,且其类型为数组;
  2. 确认 rcList 数组中的每个项都是字符串类型;
  3. 确认 commentList 数组的每个项都包含 avatarUrl, username, text, rcList等属性。

如果还有其他问题,可以在评论中提出。
如果我的回答解决了您的问题,请采纳!