Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用重命名的属性作为事件处理器,生成的微信小程序端 JS 错误 #5016

Closed
infinnie opened this issue Dec 6, 2019 · 7 comments
Assignees
Labels
question Further information is requested

Comments

@infinnie
Copy link

infinnie commented Dec 6, 2019

问题描述

在一个组件的 render() 函数中,为一个组件的事件处理器指定一个来自属性的函数,但是变量名和属性名不同。

复现步骤

/**
 * 这段注释后可以贴代码
 * 提供完整可复现的代码和整理好代码格式,有助于我们快速定位问题,节省你我时间
 * 代码提供不全或代码格式混乱的 issues 【有可能会被忽略】
 * 
 * 查看如何插入代码:https://coding.net/help/doc/project/markdown.html#i-5
 */

import Taro, { Component } from '@tarojs/taro'
import { View } from '@tarojs/components'

export default class extends Component {
    render() {
        const { dispatchSomething: doSomething } = this.props

        return <View onClick={doSomething} />
    }
}

期望行为

点击该组件可正确执行 dispatchSomething 属性所包含的函数

报错信息

编译成的组件 JS 包括如下代码:

// omitted...
[
    // ...
    {
        key: "funPrivatesluQj",
        value: function() {
            // instead of the expected dispatchSomething
            return this.props.doSomething.apply(void 0, Array.prototype.slice.call(arguments, 1))
        }
    }
]

WXML:

<block wx:if="{{$taroCompReady}}">
    <view bindtap="funPrivatesluQj"></view>
</block>

系统信息

� Taro v1.3.18


  Taro CLI 1.3.18 environment info:
    System:
      OS: Windows 7
    Binaries:
      Node: 10.16.0 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.17.3 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
      npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD

补充信息

如果您有功能上的建议,可以提到 FeatHub

使用上的问题,欢迎在「Taro 社区」一起交流

@taro-bot
Copy link

taro-bot bot commented Dec 6, 2019

CC @Chen-jj

@taro-bot
Copy link

taro-bot bot commented Dec 6, 2019

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@shenghanqin
Copy link
Collaborator

说实话,在react中看到重命名变量的挺多的,重命名方法的还是挺少的。
为啥不在外部调用的地方换名称呢?

<ComPxxxxx
 doSomething={dispatchSomething}
/>

@shenghanqin shenghanqin added the question Further information is requested label Dec 6, 2019
@Garfield550 Garfield550 assigned yuche and unassigned Chen-jj Dec 6, 2019
@taro-bot
Copy link

taro-bot bot commented Dec 6, 2019

CC @yuche

@Garfield550 Garfield550 added the CLI label Dec 6, 2019
@taro-bot
Copy link

taro-bot bot commented Dec 6, 2019

CC @luckyadam

@Garfield550
Copy link
Collaborator

Sorry, my bad...

@Chen-jj
Copy link
Contributor

Chen-jj commented Jul 2, 2020

Taro3 应该没有这个问题了。

@Chen-jj Chen-jj closed this as completed Jul 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants