小程序console.log在方法内部无法打印出data中的变量

xxx is not defined; [Component] Event Handler Error @ pages/PageTest/page_2#bound formSubmit
ReferenceError: xxx is not defined的问题。
尽管可以正常读取并显示form中信息,但是还是出现了这个错误。
这个问题充分的描述起来就是console.log(result_1)无法显示在js中定义在data中的变量。

<!--pages/PageTest/page_2.wxml-->
<text>pages/PageTest/page_2.wxml</text>
<form bindsubmit="formSubmit" bindreset="formReset">
    
      <view class="page-section">
        <view class="page-section-title">input</view>
        <view class="weui-cells weui-cells_after-title">
          <view class="weui-cell weui-cell_input">
            <view class="weui-cell__bd" style="margin: 30rpx 0" >
              <input class="weui-input" name="input" placeholder="这是一个输入框" />
            </view>
          </view>
        </view>
      </view>

      <view class="btn-area">
        <button style="margin: 30rpx 0" type="primary" formType="submit">登录</button>
        <button style="margin: 30rpx 0" formType="reset">重置</button>
      </view>
    </form>
<text>输入结果为:{{result_1}}</text>
<button type="primary" plain="true" bindtap="">忘记密码</button>

可以看到倒数第二行我写的是{{result_1}}这个变量,也是声明了的。在js中我也同样声明了这个变量。

// pages/PageTest/page_2.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    input:"",
    result_1:""
  },
  formSubmit:function(e){
    console.log('form发生了submit事件,携带数据为:', e.detail.value);
    let {input}=e.detail.value;/*这个地方里面一定要写在wxml中定义了的组件的name才能获取*/ 
    this.setData({
      result_1:input
    });
    console.log(result_1);
  },

但是表单提交后,作为测试显示结果

console.log(result_1)

就会报错,即便是将代码改成console.log(this.result_1)也只会在控制台看见一个undifined的消息。
解决办法如下:

  onLoad: function (options) {
    var that=this;
    console.log(that.data.result_1)
  },

定义一个that来访问数据,不管在那个事件或者方法中都是这样改。
不得不说js的编程习惯非常令长期后台的人觉得头大,编程习惯完全不同。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值