NervJS / taro-ui

一款基于 Taro 框架开发的多端 UI 组件库
https://taro-ui.taro.zone
MIT License
4.56k stars 753 forks source link

按钮对象在提交表单时报错 #1169

Open keyss2014 opened 4 years ago

keyss2014 commented 4 years ago

问题描述 AtButton 在提交表单或重置表单时报错。

复现步骤 创建一个仅包含一个输入框的Form表单 const Login: React.FC<{}> = (props) => { const [state, setstate] = useState('tempdata'); const onChange = (v) => { setstate(v); } const submitForm = (event: CommonEvent) => { console.log(state) }

const resetForm = () => {
}
return <AtForm onSubmit={submitForm} onReset={resetForm}>
    <AtInput name='name' onChange={onChange} value={state}></AtInput>
    <AtButton formType='submit'>提交</AtButton>
    <AtButton formType='reset'>重置</AtButton>
</AtForm>

} export default Login; 可以正常编译,但是在打开小程序点击按钮时无响应,查看控制台有报错,具体信息见下。 以上例子如果换为标准的button按钮一切正常。

期望行为 可以正常打印表单信息

报错信息

Cannot read property 'triggerEvent' of undefined; [Component] Event Handler Error @ pages/login/index#bound eventHandler TypeError: Cannot read property 'triggerEvent' of undefined at AtButton.onReset (http://127.0.0.1:39160/appservice/vendors.js:5135:27) at TaroElement.dispatchEvent (http://127.0.0.1:39160/appservice/taro.js:4648:35) at H.eventHandler [as eh] (http://127.0.0.1:39160/appservice/taro.js:3029:16)

系统信息

补充信息 看了源码后,感觉以下代码存在bug https://github.com/NervJS/taro-ui/blob/dev/src/components/button/index.tsx 在运行时$scope为未定义 private onSumit(event: CommonEvent): void { if (this.state.isWEAPP || this.state.isWEB) { this.$scope.triggerEvent('submit', event.detail, { bubbles: true, composed: true }) } }

private onReset(event: CommonEvent): void { if (this.state.isWEAPP || this.state.isWEB) { this.$scope.triggerEvent('reset', event.detail, { bubbles: true, composed: true }) } }

taro-ui-bot[bot] commented 4 years ago

欢迎提交 Issue~

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

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

Good luck and happy coding~

LbhFront-end commented 4 years ago

一样的问题

easycat commented 4 years ago

一样的问题

eruca commented 4 years ago

一样的问题

plaknight commented 4 years ago

一样的问题

JX-Zhuang commented 4 years ago

我也遇到这个问题了

JuSanZhi commented 3 years ago

我也遇到同样的问题,编译成小程序就会报这个错 image