子组件属性无法赋值 Cannot set property of undefined

子组件属性无法赋值
原始报错 Cannot set property '* * * ’ of undefined 子组件.属性名

第一种:
是你@viewchild写的不对
搞清楚你要用 viewchild 还是viewchildren,以及里面的参数写的对不对
不然你的子组件就没有成功正确的导入 所以是一个undefined的东西。
从angular4 升级到 angular8
当时@viewchild就报错
need two components but give one
因为8 使用此功能时,必须提供静态标志以定义何时需要解析ViewChild和ContentChild实例。

//angual4
  @ViewChild('seriesMultiSelect')
  private seriesMultiSelect: MultiSelect;
// angular 8

  @ViewChild('seriesMultiSelect', { static: false })
  private seriesMultiSelect: MultiSelect;

第二种:
类似这种 Cannot set property ‘XXX’ of undefined multiselect.options
原因是

  @ViewChild('seriesMultiSelect', { static: false })
  private seriesMultiSelect: MultiSelect;

当我需要初始化页面,后面内容会更具你的选择,改成 多选框的内容,那么这里static不能写false,要写true

  @ViewChild('seriesMultiSelect', { static: true })
  private seriesMultiSelect: MultiSelect;

基本都是子组件的问题 子组件引入有问题

你可能感兴趣的:(angular)