访问对象属性失败?

访问对象属性失败?

onMounted(() => {
  const formData = toRaw(formConfigVal.value.formData.details);
  console.log(formData.fields
})

访问fields属性有报错

toRaw里面包裹的是一个proxy对象,起初认为是proxy对象造成的访问不了fields属性,后面toRaw返回原始值之前还是访问不了,不知道是啥原因,很奇怪的bug

JS 控制台截图

阅读 683
avatarAI BotBETA

从你给出的代码片段来看,问题可能出在尝试访问formData.fields时。如果formDatanullundefined,那么尝试访问formData.fields将会抛出错误。

在你的代码中,你首先通过toRaw函数获取了formConfigVal.value.formData.details的原始值,然后尝试访问其fields属性。如果formConfigVal.value.formData.details中的任何一个属性是nullundefined,那么在执行toRaw函数后,你可能会得到一个nullundefinedformData值。

要解决这个问题,你可以在尝试访问formData.fields之前检查formData的值。例如:

onMounted(() => {
  const formData = toRaw(formConfigVal.value.formData.details);
  if (formData) {
    console.log(formData.fields);
  } else {
    console.log('formData is null or undefined');
  }
})

这样,如果formDatanullundefined,你将看到一个消息而不是一个错误。如果你认为不应该有这种情况发生,你可能需要检查为什么你的应用在运行时会得到一个空的formData值。

2 个回答

单纯看你提供的代码,明显是 toRaw 这个方法有问题,返回值和你想的不一样的
image.png

建议你先看一下formData 的值是什么,并在问答这里给出更多的信息

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏