uni-app 支付宝小程序云联表查询报错 Cannot read properties of null (reading 'lastCmd')

uni-app 支付宝小程序云联表查询报错 Cannot read properties of null (reading ‘lastCmd’)

示例代码:

const db = uniCloud.databaseForJQL()  
const order = db.collection('order').getTemp() // 注意结尾的方法是getTemp,对order表过滤得到临时表  
const res = db.collection(order,'book').get().then(res=>{
    console.log(res);  
})

操作步骤:

const db = uniCloud.databaseForJQL()  
const order = db.collection('order').getTemp() // 注意结尾的方法是getTemp,对order表过滤得到临时表  
const res = db.collection(order,'book').get().then(res=>{
    console.log(res);  
})

预期结果:

不报错

实际结果:

{
"code": "SYSTEM_ERROR",
"errCode": "SYSTEM_ERROR",
"message": "Cannot read properties of null (reading 'lastCmd')",
"errMsg": "Cannot read properties of null (reading 'lastCmd')",
"systemInfo": []
}

bug描述:

参考文档:https://doc.dcloud.net.cn/uniCloud/jql.html#lookup

编写联表查询

Image from DCloud

相关链接 :


更多关于uni-app 支付宝小程序云联表查询报错 Cannot read properties of null (reading 'lastCmd')的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

HBuilderX 4.0.2024012711-alpha 已修复。

更多关于uni-app 支付宝小程序云联表查询报错 Cannot read properties of null (reading 'lastCmd')的实战教程也可以访问 https://www.itying.com/category-93-b0.html


重新上传云函数试下呢?

和云函数无关,是前端这边直接JQL调取数据库信息,只要使用了联表操作,就会报这个bug,使用unicloud-db组件,涉及到联表查询,也有这个问题

回复 q***@qq.com: 问题我修复了,你随便上传一个schema触发一下clientDB更新再试下。

如果是本地调试需要等下个版本修复,云端的你触发下更新就好了

回复 DCloud_uniCloud_CRL: 可以了,非常感谢!!!!!!

同问,楼主解决了没?

我也出现了这个问题,只要是连接云端云函数,就有这个错误,本地云函数没有这个错误

这么大bug没人管么?

我确认下这个问题

uni-app 开发支付宝小程序时,使用云联表查询时遇到 Cannot read properties of null (reading 'lastCmd') 错误,通常是由于以下几个原因导致的:

1. 云函数返回值为空

云函数在执行查询操作时,可能没有返回预期的数据,导致返回值 null,进而导致在访问 lastCmd 属性时出错。

解决方法:

  • 确保云函数正确执行并返回了有效的数据。
  • 在访问 lastCmd 属性之前,先检查返回值是否为 null
const result = await uniCloud.callFunction({
    name: 'yourCloudFunctionName',
    data: {
        // your query data
    }
});

if (result && result.result) {
    const lastCmd = result.result.lastCmd;
    // 继续处理
} else {
    console.error('云函数返回值为空');
}

2. 云函数未正确配置或未部署

如果云函数未正确配置或未部署,调用时可能会返回 null

解决方法:

  • 检查云函数是否已正确部署。
  • 确保云函数的名称和调用时的名称一致。

3. 云联表查询条件错误

如果查询条件不正确,可能会导致查询结果为空。

解决方法:

  • 检查查询条件是否正确。
  • 确保查询条件与数据库中的数据结构匹配。

4. 网络问题

网络问题可能导致云函数调用失败,返回 null

解决方法:

  • 检查网络连接是否正常。
  • 尝试重新调用云函数。

5. 云函数内部错误

云函数内部可能存在错误,导致执行失败。

解决方法:

  • 检查云函数的日志,查看是否有错误信息。
  • 修复云函数中的错误。

6. uniCloud SDK 版本问题

如果使用的 uniCloud SDK 版本过旧或存在 bug,可能会导致此问题。

解决方法:

  • 更新 uniCloud SDK 到最新版本。
  • 检查是否有相关的 bug 修复。

7. 支付宝小程序环境问题

支付宝小程序环境可能存在兼容性问题。

解决方法:

  • 确保支付宝小程序的基础库版本是最新的。
  • 检查是否有相关的环境问题。

示例代码

以下是一个简单的示例代码,展示如何正确处理云函数返回值:

uniCloud.callFunction({
    name: 'yourCloudFunctionName',
    data: {
        // your query data
    }
}).then(res => {
    if (res && res.result) {
        const lastCmd = res.result.lastCmd;
        // 继续处理
    } else {
        console.error('云函数返回值为空');
    }
}).catch(err => {
    console.error('云函数调用失败', err);
});
回到顶部