微信小程序开发push方法报错。

微信小程序开发push方法报错
首先定义了一个数组optionList

data: {
formTitle: '', //formTile 用来保存当前投票标题输入框中的内容
formDesc: '' ,//用于保存当前补充描述输入框中的内容
** optionList: []//使用数组保存每一个投票选项的内容,数组中的每一项都是一个String**
},
然后获取当前的optionList,在list数组中新增一个空字符串,插入数组最后面

   const newOptionList = this.data.optionList //获取当前的optionList
   newOptionList.push('')   //在list数组中新增一个空字符串,插入数组最后面
   this.setData[{
    optionList: newOptionList //更新data对象中的optionList
   }]

在 newOptionList.push('')报错

报错是:VM478 WAService.js:2 TypeError: Cannot read property 'push' of undefined
查了下是数组没有初始化,这种怎么进行初始化。

newOptionList 这个直接赋值为空数组,或者如果想获取到optionList push,那么optionList 需要再data里面初始化为空数组

   const newOptionList = [];
   newOptionList.push('')   //在list数组中新增一个空字符串,插入数组最后面
   this.setData[{
    optionList: newOptionList //更新data对象中的optionList
   }]

说明调用push的变量不是 数组格式 optionList: 一直是数组格式吗?

哦 你用const 声明了 ,就不能改变了试试下面的

   let newOptionList = this.data.optionList //获取当前的optionList
   newOptionList.push('')   //在list数组中新增一个空字符串,插入数组最后面
   this.setData[{
    optionList: newOptionList //更新data对象中的optionList
   }]

试试在语句中再定义一次optionList。data里也要定义

   const optionList=[];
   const newOptionList = []; 
   newOptionList.push('')   //在list数组中新增一个空字符串,插入数组最后面
   this.setData[{
    optionList: newOptionList //更新data对象中的optionList
   }]
 

```