如图设置属性后,将这个对象设置为style属性,然后点击图片会重新渲染,但是会产生上面的错误,因为代码太多太乱,所以就不全贴了,我想问下大家可能是什么原因
如图设置属性后,将这个对象设置为style属性,然后点击图片会重新渲染,但是会产生上面的错误,因为代码太多太乱,所以就不全贴了,我想问下大家可能是什么原因
谢邀,如边城所答,这里的原因是styleObj
指向了this.props.imgState.pos
对象,而你此时修改该对象的transform
属性,报该错:只读对象无法被修改。
你可以在这里debugger
一下,输入Object.getOwnPropertyDescriptor(styleObj, 'transform');
,看下其writable
数据描述符是否为false
。
我的预期答案为true
,如果是这样的话,你就可以看下this.props.imgState.pos
对象怎么定义的了,我看这里的函数执行栈是react
内部,有可能是其内部实现,也有可能是你定义的问题。
没使用过React
,如果是内部问题就爱莫能助了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答9.6k 阅读
1 回答3.6k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
1 回答2.9k 阅读
2 回答3.5k 阅读✓ 已解决
transform
是个只读属性,要看styleObj
,即this.props.imgState.pos
是怎么定义的了