请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么这里classMap要写在created中,而不能写在data中?

为什么这里classMap = [‘decrease’, ‘discount’, ‘special’, ‘invoice’, ‘guarantee’];要写在created中,而不能写在data中。尝试了一下写在data中,编译不报错,但就是遍历不出数组元素。这是为什么

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2019-06-28 10:13:11

可以写在 data 中,只是没有必要,因为不需要把它们变成响应式的。
你是如何写在 data 中的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕仰9527 #1
    data() {
          return {
            detailShow: false,
            classMap: ['decrease', 'discount', 'special', 'invoice', 'guarantee']
          };
        }
    尝试这样,编译没有错误,但是浏览器报错:
    [Vue warn]: Error when evaluating expression "classMap[seller.supports[0].type]": TypeError: Cannot read property '0' of undefined (found in component: <v-header>)
    回复 有任何疑惑可以回复我~ 2019-06-28 10:19:00
  • ustbhuangyi 回复 提问者 慕仰9527 #2
    那是因为 seller 一开始是空对象,seller.supports 为 undefined,seller.supports[0] 就报错了,你可以用 v-if 加一层保护,参考我的源码
    回复 有任何疑惑可以回复我~ 2019-06-28 10:41:15
  • 提问者 慕仰9527 回复 ustbhuangyi #3
    谢谢老师
    回复 有任何疑惑可以回复我~ 2019-06-28 12:58:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信