const selectChange = async ({ target }, prop, value, isRender = false) => { const { areaId } = viewModel.value; viewModel.value = { ...viewModel.value, [prop]: value }; try { const res = await net.scjhgl.inventory(viewModel.value); tableDialogRow.value = res.result.records; console.log(res.result.records); } catch (error) { console.error(error); }};怎么解决res.result.records中报错为 Cannot read properties of null (reading 'records')问题
时间: 2024-02-28 16:54:43 浏览: 87
Vue源码中要const _toStr = Object.prototype.toString的原因分析
这个错误通常表示在 `res.result` 中没有 `records` 属性,因此你需要检查一下返回结果是否正确,并且确保它包含了 `records` 属性。你可以在代码中添加一些检查,以避免出现这个错误。
例如,你可以在请求成功后检查 `res.result` 是否为 `null`,如果是,则提示错误或者返回一个空数组。你也可以使用可选链操作符 `?.` 来避免在 `null` 或 `undefined` 上访问属性时出现错误。
下面是一些可能有用的代码片段:
```
const selectChange = async ({ target }, prop, value, isRender = false) => {
const { areaId } = viewModel.value;
viewModel.value = { ...viewModel.value, [prop]: value };
try {
const res = await net.scjhgl.inventory(viewModel.value);
if (!res.result) {
// 返回结果为空
console.error('返回结果为空');
tableDialogRow.value = [];
} else {
// 使用可选链操作符避免访问 null 或 undefined 上的属性
tableDialogRow.value = res.result?.records || [];
console.log(tableDialogRow.value);
}
} catch (error) {
console.error(error);
}
};
```
这样,当返回结果为空时,会打印错误信息并将 `tableDialogRow.value` 设置为空数组;当返回结果不为空时,会使用可选链操作符来避免访问 null 或 undefined 上的属性,并将 `tableDialogRow.value` 设置为 `res.result.records` 或空数组。
阅读全文