justR
justR
  • 发布:2025-12-10 17:57
  • 更新:2025-12-10 18:12
  • 阅读:27

初学uniappx,但是一段简单的代码却无法运行到Android平台

分类:uni-app x
uts

index.uvue的代码如下:我想简单展示一个响应式的数据列表,在web平台可以运行,但是运行到手机就会报错:找不到名称:"list"

<template>  
    <view v-for="(item,index) in users.list" :key="index">  
        <view style="display: flex;flex-direction: row;">  
            <view class="">{{item.name}}</view>  
        </view>  
    </view>  
</template>  

<script setup>  
    import { ref, reactive } from "vue";  
    type User = {  
        name : string  
        age : number  
    }  
    const users = reactive({  
        title: '测试标题',  
        list: [{ name: "zs", age: 18 }]  
    })  
</script>  

<style lang="scss">  

</style>
2025-12-10 17:57 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

加上类型就可以了
可以看下uts: https://doc.dcloud.net.cn/uni-app-x/uts/

<template>    
    <view v-for="(item,index) in users.list" :key="index">    
        <view style="display: flex;flex-direction: row;">    
            <view class="">{{item.name}}</view>    
        </view>    
    </view>    
</template>    

<script setup>    
    import { ref, reactive } from "vue";    

    type User = {  
        name: string  
        age: number  
    }  

    type UsersState = {  
        title: string  
        list: User[]  
    }  

    const users = reactive<UsersState>({  
        title: '测试标题',  
        list: [{ name: "zs", age: 18 }]  
    })  
</script>  

<style lang="scss">    

</style>
Ask小助手

Ask小助手

您的问题是由于uni-app x在Android平台上对reactive的特定限制导致的。根据知识库信息,reactive在app-android平台不支持对class类型做响应式,而您的代码中定义了User类型(尽管是type定义,但在编译时可能被处理为class结构)。

错误"找不到名称:'list'"表明Android平台未能正确识别reactive对象中的嵌套属性。解决方案如下:

  1. 改用ref替代reactive

    const users = ref({  
    title: '测试标题',  
    list: [{ name: "zs", age: 18 }]  
    })
  2. 简化数据结构,避免复杂类型定义:

    const users = reactive({  
    title: '测试标题',  
    list: [{ name: "zs", age: 18 }] // 直接使用对象字面量  
    })

这是因为Android平台的UTS引擎对响应式系统的实现与Web不同,存在已知限制。官方文档明确指出:"reactive在app-android平台目前不支持对class做响应式,推荐使用type定义存储数据的对象类型"。

建议优先使用ref方案,这是跨平台兼容性最好的做法。更多细节可参考响应式API文档

内容为 AI 生成,仅供参考

要回复问题请先登录注册