El applet de WeChat sobre la impresión de la matriz está vacío, la longitud de la matriz es 0

El applet de WeChat sobre la impresión de la matriz está vacío, la longitud de la matriz es 0

Pisar el hoyo

Mientras realizaba pruebas de proyectos hoy, me encontré con un problema sobre las matrices. Me hizo un poco confuso y extraño al principio, pero en realidad fue un pequeño problema.
Descripción del requisito: el front-end envía una solicitud de solicitud desde la base de datos back-end para obtener los datos y almacenarlos en la matriz local. Luego renderice los datos de la matriz local para mostrar los datos al usuario.
Descripción del problema: después de enviar la solicitud, guardo los datos en la matriz. console.log (matriz) para generar la matriz, console.log (matriz.length) para generar la longitud de la matriz, se encuentra que la matriz es una matriz vacía y la longitud también es 0.

El código infractor

A través de la solicitud de solicitud, obtenga la lista de trabajos sin terminar y la lista de trabajos completados, que son res.data.data.homeworkNoCompleteList y res.data.data.homeworkYesCompleteList, y guárdelos en la matriz local mediante la función setData.
¡pero! ! La matriz impresa por console.log () está vacía y la longitud de la matriz es 0.

wx.request({
    
    
      url: '某url',
      data: {
    
    
        student_id: '学号',
      },
      method: 'POST',
      header: {
    
    
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: function (res) {
    
    
        console.log(res.data)
        that.setData({
    
    
          homeworkNoCompleteList: res.data.data.homeworkNoCompleteList,
          homeworkYesCompleteList: res.data.data.homeworkYesCompleteList,
          // homeworkNoNumber: that.data.homeworkNoCompleteList.length,
          // homeworkYesNumber: that.data.homeworkYesCompleteList.length,
          // examNoNumber: that.data.examNoCompleteList.length,
          // examYesNumber: that.data.examYesCompleteList.length,
          // discuss_number: that.data.discusslist.length
        })
        console.log(that.data.homeworkYesCompleteList.length)
      }
    })
    // 获取需完成作业、已完成作业、需完成考试、已完成考试的数量

    console.log(this.data.homeworkYesCompleteList)
    console.log(this.data.studentStatus);
    console.log(this.data.teacherStatus);
    console.log(this.data.homeworkNoNumber);
    console.log(this.data.homeworkYesNumber);
    console.log(this.data.examNoNumber);
    console.log(this.data.examYesNumber)


Inserte la descripción de la imagen aquí
Luego apareció la salida de la imagen de abajo.
Los datos se obtienen con éxito, la matriz se puede generar y la oración
console.log(that.data.homeworkYesCompleteList.length)
puede generar correctamente 2 en lugar de 0.
Inserte la descripción de la imagen aquí
En el código en wxml, utilizo los valores de homeworkYesNumber para juzgar si renderizar algo, de lo contrario, se mostrará alguna estructura cuando no haya datos, lo que ocupará espacio y será antiestético. Sin embargo, el código anterior hará que la variable sea 0. Desde entonces, es un espacio en blanco.

Inserte la descripción de la imagen aquí

La causa del problema

En la función de carga, obtengo los datos a través de la función de solicitud, pero el archivo console.log () a continuación no puede generar los datos como se esperaba. Entonces creo que cuando se completa la función de carga, la solicitud aún no se ha completado. En otras palabras, los datos no se han almacenado en la matriz local, por lo que la longitud de la matriz es naturalmente 0.

problema resuelto

En el éxito de la solicitud, simplemente complete la operación setData

      success: function (res) {
    
    
        console.log(res.data)
        that.setData({
    
    
          homeworkNoCompleteList: res.data.data.homeworkNoCompleteList,
          homeworkYesCompleteList: res.data.data.homeworkYesCompleteList,
          homeworkNoNumber: that.data.homeworkNoCompleteList.length,
          homeworkYesNumber: that.data.homeworkYesCompleteList.length,
          examNoNumber: that.data.examNoCompleteList.length,
          examYesNumber: that.data.examYesCompleteList.length,
          discuss_number: that.data.discusslist.length
        })

Supongo que te gusta

Origin blog.csdn.net/qq_43263320/article/details/113697832
Recomendado
Clasificación