收藏
回答

wxs内部的callMethod方法的参数中对象不能是方法吗?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.4 1402 2.7.1

- 当前 Bug 的表现(可附上截图)

//wxs代码:

ins.callMethod('testCallmethod1',{success:function(res){

    console.log(res)

  }})


ins.callMethod('testCallmethod2', {success:111})


//js代码:

testCallmethod1(obj)

{

console.log('1',obj)

},

testCallmethod2(obj) {

console.log('2',obj)

}



输出值:



- 预期表现

{success:function(res){console.log(res)}}

- 复现路径

https://developers.weixin.qq.com/s/FlenmJmL7j8G

- 提供一个最简复现 Demo


回答关注问题邀请回答
收藏

1 个回答

  • Maverick
    Maverick
    2019-05-30

    不能


    当前,视图层和逻辑层的数据传输,实际上通过两边提供的 evaluateJavascript 所实现。即用户传输的数据,需要将其转换为字符串形式传递,同时把转换后的数据内容拼接成一份 JS 脚本,再通过执行 JS 脚本的形式传递到两边独立环境

    2019-05-30
    有用
    回复 4
    • 星光刀锋
      星光刀锋
      2019-05-30

      哦,谢谢您,那wxs与js之间的函数传递值怎么实现呢?

      例如:wxs代码:

      ins.callMethod('testCallmethod1',{success:function(res){
          console.log(res)
        }})

      js代码:

      testCallmethod1(obj)
       
      {
           var success = obj.success;
           var a = 123123;
           success(a)
      }

      wxs代码怎么才能获取js传递过来的值呢?

      2019-05-30
      回复
    • Maverick
      Maverick
      2019-05-30回复星光刀锋

      逻辑层testCallmethod1执行后setData({prop: 123}),渲染层通过change:prop接收,(或者用triggerEvent)

      2019-05-30
      回复
    • 星光刀锋
      星光刀锋
      2019-05-30回复Maverick

      好的,谢谢您

      2019-05-30
      回复
    • 谢
      2020-05-24回复Maverick
      你好如果testCallmethod1是异步的呢
      2020-05-24
      回复
登录 后发表内容