Home Web Front-end uni-app What should I do if uniapp onload data cannot be rendered?

What should I do if uniapp onload data cannot be rendered?

Apr 23, 2023 pm 04:40 PM

Recently, I was using uniapp to develop a small program project, and encountered a problem, that is, the data on the page could not be rendered. After some exploration and thinking, I finally found a solution.

Question

I initiated a request to obtain data in the onLoad life cycle function of the page, assigned the data to the attribute in data, and used the attribute in the template for rendering. But a problem occurred, the corresponding data could not be rendered in the template.

First, I eliminated some common errors, such as misspellings of variable names, mismatched data types, etc. However, these did not solve the problem.

Solution

I realized that the data may be rendered before it is obtained, so it is not feasible to render directly in the onLoad life cycle function. To address this problem, I tried some solutions:

1. Place the data request in the component's created life cycle function.

This method is basically unfeasible because the data request is performed asynchronously in the created life cycle function, while the rendering component is performed synchronously and is rendered before the data is obtained.

2. Use watch to monitor data changes.

This method is feasible in my actual operation. Changes in data are monitored through watch. Once the data is obtained successfully, the watch function will be triggered and then rendered.

Code display:

export default {
  data() {
    return {
      dataList: []
    }
  },
  watch: {
    dataList: function(val) {
      if (val.length > 0) {
        this.$nextTick(() => {
          //渲染组件的操作
        })
      }
    }
  },
  onLoad() {
    // 发起数据请求,并在成功后赋值给dataList
  }
}
Copy after login

It should be noted here that after the data is successfully obtained, the Vue.nextTick method needs to be used to render the component, otherwise the component may not be completely rendered.

Conclusion

In uniapp, it is not feasible to directly render data in the onLoad life cycle function. You need to use watch to monitor data changes and render the component after the data is successfully obtained.

The above is the detailed content of What should I do if uniapp onload data cannot be rendered?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)