reactjs/redux -我这样做对吗?很少有关于代码的问题
reactjs/redux - I'm doing it right? Few questions about code
这段代码对吗?你会用不同的方式写这段代码吗?
具体来说:
A)
email: document.getElementById('email').value,
password: document.getElementById('password').value
或onChange || this。参考文献?
B)
@connect((state) => {
return {
email: state.email
}
})
或与export default connect(*arrowFunction*)(SignIn)
C)
<form onSubmit={this.handleSubmit.bind(this)}>
或在构造函数
中使用this.handleSubmit = this.handleSubmit.bind(this)
D)
connect from react-redux我是正确的吗?
完整代码
import React from 'react'
import { Link } from 'react-router'
import { connect } from 'react-redux'
@connect((state) => {
return {
email: state.email
}
})
class SignIn extends React.Component {
handleSubmit (event) {
event.preventDefault()
this.props.dispatch({
type: 'SIGN_IN',
email: document.getElementById('email').value,
password: document.getElementById('password').value
})
}
render () {
return (
<form onSubmit={this.handleSubmit.bind(this)}>
<div className='row'>
<div className='column xs-12'>
<label htmlFor='email'>E-mail</label>
<input className='a' id='email' type='email' />
</div>
<div className='column xs-12'>
<label htmlFor='password'>Heslo</label>
<input className='a' id='password' type='password' />
</div>
<div className='column xs-12'>
<div className='buttons'>
<button className='b' type='submit'>Prihlásiť sa</button>
<Link className='b' to='/account/sign-up'>Vytvoriť účet</Link>
</div>
</div>
</div>
</form>
)
}
}
export default SignIn
您的完整代码:
import React from 'react';
import { Link } from 'react-router';
import { connect } from 'react-redux';
import { login } from 'modules/auth';
@connect(
state => ({
email: state.email
}),
{ login }
)
class SignIn extends React.Component {
handleSubmit = (event) => {
event.preventDefault()
const email = this.refs.email.value,
const password = this.refs.password.value
this.props.login(email, password)
}
render () {
return (
<form onSubmit={this.handleSubmit}>
<div className='row'>
<div className='column xs-12'>
<label htmlFor='email'>E-mail</label>
<input className='a' id='email' type='email' ref='email' />
</div>
<div className='column xs-12'>
<label htmlFor='password'>Heslo</label>
<input className='a' id='password' type='password' ref='password' />
</div>
<div className='column xs-12'>
<div className='buttons'>
<button className='b' type='submit'>Prihlásiť sa</button>
<Link className='b' to='/account/sign-up'>Vytvoriť účet</Link>
</div>
</div>
</div>
</form>
)
}
}
export default SignIn
And modules/auth.js
file:
const LOGIN = 'your-app/auth/LOGIN';
export function login(email, password){
return {
type: LOGIN,
email,
password
}
}
注意:如果我是你,我会使用redux-form作为我的输入
相关文章:
- TypeScript代码类似于揭示模块模式结构
- 仅将JavaScript应用于部分代码(例如菜单)
- 制作 JavaScript 代码适用于任何元素
- 链接适用于所有浏览器,除了 safari(php 代码)
- 如何修改代码以将其应用于三个下拉列表?(Jquery)
- 需要帮助将此JavaScript代码应用于我现有的代码
- VAlue未应用于使用Jquery代码的输入
- Dijkstra's”;针对GOTO声明的案件“;与函数一样适用于现代调用代码的命名封装
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 如何使jQuery代码适用于动态加载的HTML
- jquery:$(input).keydown无法在单选按钮上设置处理程序,同样的代码也适用于文本
- 是否有特定于浏览器的代码验证器
- 相当于JavaScript代码的web.config
- NodeJS相当于PHP代码,涉及_GET美元和file_get_contents
- C# 等效于此代码
- 如何使用javascript来调用其他类似于此代码的javascript
- JQuery自定义单选按钮代码(代码不起作用)
- 是否有类似于此代码$('#date1',this.el)[0]的纯Javascript
- Javascript时钟只适用于嵌入式代码?怎么来的
- 我如何设置颜色属性在HTML上的每个文本行对应于javascript代码行执行