-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] model 插件导出纯对象出现 xxx.ValueOf is not a function 问题 #12175
Comments
由于缺乏足够的信息,我们暂时关闭了该 Issue。请修改(不要回复) Issue 提供最小重现以重新开启。谢谢。 |
只要接口返回的 json 是直接当成 model 返回时, 非常容易复现 |
在你的 demo 复现里,这段代码: let a = Object.create({}, { a: Math.random() });
let b = Object.create({}, { b: Math.random() });
a.b = b; 在浏览器控制台运行了一下,会直接报错的,这是一段错误的代码。
如有问题,需要给一个最小复现。 |
不好意思, 搞错了. 已更新例子 问题应该就 useModel() 方法的第二个参数. 在第二次渲染的时候, 会对新旧 2 个对象调用下面这个 umi/packages/plugins/libs/model.tsx Line 162 in 9594ec2
|
你新给的 codesandbox 例子里,这段代码: const { a } = useModel('index', ({ a }) => {
a;
}); 是没有返回值的,在 js 里返回值必须使用 如果改成 至于你提到的 在各种 react 全局状态管理方案里,use model 这个方案是属于使用原生 context 的原生方案,比较轻量,但 context 中的数据只要有任何值更新了,整个 context 下面的内容都会重渲染,这里 use model 在每次数据更新时使用 equal 对比方法来避免一部分重渲染的问题,所以就需要你的对象拥有能对比值的实现。
|
What happens?
使用 model 出现如下报错 xxx.ValueOf is not a function
定位后发现, 如果
model
返回的是纯对象, 这个对象没有valueOf
方法就会出错Mini Showcase Repository(REQUIRED)
在线 demo
Context
The text was updated successfully, but these errors were encountered: