背景
今天开发 vue 项目时遇到一个警告:
[Vue warn] toRefs() expects a reactive object but received a plain one.
控制台输出的代码只定位到 main.ts:21,也就是下面内容:
但这个定位可以说定了个寂寞。
不过好在我有 git 版本管理,知道我新增了哪些内容,于是我慢慢进行控制变量排除法,终于找到具体问题所在。
解决
最终定位到的代码如下图所示:
我在使用 arco-design 的 a-textarea
组件时,传递给 v-model
的是一个纯文本,而不是一个响应式对象。正如警告信息所说的“它期待一个响应式对象,但却收到了一个原始数据”。
知道问题所在后,解决方案就很多了,可以选择将 condition
拆分成一个一个 ref
对象,或者采用 a-form
组件,直接将 condition
作为 props
传递过去。