- 注意在 JavaScript 中对象和数组是通过引用传入的;
- 对于一个数组(或对象)类型的 prop 来说,在子组件中改变这个数组(或对象)本身将会影响到父组件的状态。
- 所以不可以直接操作数组(或对象)类型prop。
export default {
props: {
fileList: Array // 接收父组件传来的参数
},
data() {
return {
list: [] // 使用list来接管fileList,此时可以操作list而不会影响父组件
}
},
watch: {
fileList: { // 监听fileList,给list赋值
handler(val) {
if (val) {
this.list = val
}
},
immediate: true // 子组件加载时立即执行
}
},
computed: {
displayList() { // 此处操作list
return this.list.map(item => {
return item || ''
})
}
}
}