【发布时间】:2017-03-15 16:47:08
【问题描述】:
所以基本上我有一个没有表单的登录页面,我想在用户按下回车时触发登录按钮的 onClick。
我尝试像这样向页面添加事件侦听器:
componentWillMount() {
const { handleKeyPress, username, password } = this.props;
document.addEventListener('keydown', (event, username, password) => handleKeyPress(event.key));
}
问题在于,该监听器在组件挂载时被实例化,这意味着道具用户名和密码处于初始状态(即为空)。
由于类似的原因,将事件侦听器添加到 componentWillReceiveProps 不起作用。
基本上使用此解决方案,我不需要从事件侦听器中的函数发送用户名和密码,而是从定义事件侦听器中的函数的 mapDispatchToProps 中的状态获取用户名和密码,但这很丑陋解决方案。
一开始我一直在寻找的是向按钮添加一个类似于 onClick 的侦听器,基本上是这样的:
<button
onEnterKeyPress={() => handleLogin(this.props.username, this.propspassword)}
>
Log in
</button>
但据我所知,没有办法做到这一点......但希望我错了!如果有人有一些想法,请分享。
【问题讨论】:
标签: reactjs redux react-redux