开发者工具,1.06 已经更新为最新版本。[渲染层错误] Uncaught (in promise) Error: object null is not iterable (cannot read property Symbol(Symbol.iterator))(env: Windows,mp,1.06.2504030; lib: 3.10.0)
[渲染层错误] Error: SystemError (webviewScriptError)
object null is not iterable (cannot read property Symbol(Symbol.iterator))(env: Windows,mp,1.06.2504030; lib: 3.10.0)
代码如下:一个简单的登录页面,一直在报错,看着很难受,虽然不影响功能使用。
<template>
<NavBar title="企业员工通道" :showBack="true" backUrl="/pages/user/index" @heightReady="onNavHeightReady" />
<view class="container" :style="{paddingTop: pagePaddingTop + 'rpx', paddingBottom: baseHeight + 'rpx' }">
<!-- 用户名输入框 -->
<input class="input" type="text" v-model="form.username" placeholder="请输入用户名" />
<!-- 密码输入框 -->
<input class="input" type="password" v-model="form.password" placeholder="请输入密码" />
<!-- 登录按钮 -->
<button class="login-btn" @click="handleLogin" :disabled="loading">
{{ loading ? '登录中...' : '登录' }}
</button>
</view>
</template>
<script lang="ts" setup>
import { reactive, ref } from 'vue'
import { login } from '@/pages/api/login'
import type { loginData } from '@/pages/type/login'
import NavBar from '@/pages/components/common/NavBar.vue'
import { onLoad } from '@dcloudio/uni-app'
const pagePaddingTop = ref(160) // 默认值
const baseHeight = ref(180) // 默认值
const onNavHeightReady = (height : number) => {
pagePaddingTop.value = height
}
// 表单数据
const form = reactive<loginData>({
username: '',
password: ''
})
// 登录加载状态
const loading = ref(false)
const handleLogin = async () => {
if (!form.username || !form.password) {
uni.showToast({ title: '请输入用户名和密码', icon: 'none' })
return
}
loading.value = true
const res = await login(form as loginData)
if (res.code == 0) {
// 存储信息
const hotelId = res?.data?.hotelId ?? 0
const token = res?.token ?? 0
uni.setStorageSync('hotelId', hotelId);
uni.setStorageSync('token', token);
uni.navigateTo({
url: `/pages/pms/index?hotelId=${hotelId}`
})
}
}
</script>