Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "visible"
意思:避免直接改变属性,因为每当父组件渲染的时候,改值将被覆盖。
错误原因:改动了子组件引用的父组件的变量,也就是props中的数据。
解决办法:
但是又出现新问题,dialog不显示。
所以我想的是computed
但是 computed只有读取功能 没有设置功能。
报错:
Computed property "showVisible" was assigned to but it has no setter"visible"
我现在 解决了。
解决办法:我想的是子组件直接写的visible的属性。
解决办法:
父组件里面的
子组件里面的
自己封装的dialog弹框,弹框显示不显示问题。
总结:
错误示范:点击按钮,弹框显示,但是visible属性 关闭的时候没有办法关闭。会报错,子组件改了父组件的visibe属性。最后没有解决。
正确示范:所以我直接在子组件设置弹框显示不显示,设置visible的属性,之后通过element-ui的@close方法把弹框通过点击“错号”关掉,通过其他方式,比如点击空白处,或按esc键都不能关闭,这是使用了element-ui的属性
:close-on-click-modal="false"
:close-on-press-escape="false"
设置为false就可以。
扩展:
父组件获取子组件的值和方法是用ref,和refs来获取的。