Reactjs TypeError:无法读取属性';验证字段';未定义的反动式&;德扬戈?没有antd,我如何解决此问题?
当我尝试登录时,我收到了这个错误(TypeError:Cannotreadproperty'validateFields'ofundefined),我也阅读了关于antd的文档,但我不想在我的项目中使用antd没有antd我如何解决这个问题。。。我有简单的反应引导表。。。有人知道我如何解决这个问题吗 login.jsReactjs TypeError:无法读取属性';验证字段';未定义的反动式&;德扬戈?没有antd,我如何解决此问题?,reactjs,Reactjs,当我尝试登录时,我收到了这个错误(TypeError:Cannotreadproperty'validateFields'ofundefined),我也阅读了关于antd的文档,但我不想在我的项目中使用antd没有antd我如何解决这个问题。。。我有简单的反应引导表。。。有人知道我如何解决这个问题吗 login.js import React from 'react' import { Link } from 'react-router-dom' import { connect } from
import React from 'react'
import { Link } from 'react-router-dom'
import { connect } from 'react-redux';
import { Form } from 'react-bootstrap';
import * as actions from './actions/auth';
import FullPageLoader from "../components/FullPageLoader";
class NormalLoginForm extends React.Component {
handleSubmit = (e) => {
e.preventDefault();
this.props.form.validateFields((err, values) => {
if (!err) {
this.props.onAuth(values.userName, values.password);
this.props.history.push('/');
}
});
}
render() {
let errorMessage = null;
if (this.props.error) {
errorMessage = (
<p>{this.props.error.message}</p>
);
}
return (
<div className="form-flex">
{errorMessage}
{
this.props.isLoading ?
<FullPageLoader />
:
<Form onSubmit={this.handleSubmit} className="login-form form-group">
<h1 className="h4 text-center font-weight-normal">Sign in</h1>
<div className="form-group">
<input
className="form-control"
name="username"
autoComplete="off"
type="text"
required
placeholder="username" />
</div>
<div className="form-group">
<input
className="form-control"
name="password"
autoComplete="off"
type="password"
required
placeholder="password" />
</div>
<div className="form-group">
<button type="submit" className="btn btn-block btn-secondary">Login</button>
</div>
<small>
<Link to="/passwordforget">Forgot password?</Link>
</small>
</Form>
}
</div >
);
}
}
const mapStateToProps = (state) => {
return {
loading: state.loading,
error: state.error
}
}
const mapDispatchToProps = dispatch => {
return {
onAuth: (username, password) => dispatch(actions.authLogin(username, password))
}
}
export default connect(mapStateToProps, mapDispatchToProps)(NormalLoginForm);
从“React”导入React
从“react router dom”导入{Link}
从'react redux'导入{connect};
从'react bootstrap'导入{Form};
将*作为操作从“/actions/auth”导入;
从“./组件/FullPageLoader”导入FullPageLoader;
类NormalLoginForm扩展了React.Component{
handleSubmit=(e)=>{
e、 预防默认值();
this.props.form.validateFields((错误,值)=>{
如果(!err){
this.props.onAuth(values.userName、values.password);
this.props.history.push('/');
}
});
}
render(){
让errorMessage=null;
if(this.props.error){
错误消息=(
{this.props.error.message}
);
}
返回(
{errorMessage}
{
这个。道具。正在加载吗?
:
登录
登录
忘记密码了?
}
);
}
}
常量mapStateToProps=(状态)=>{
返回{
加载:state.loading,
错误:state.error
}
}
const mapDispatchToProps=调度=>{
返回{
onAuth:(用户名,密码)=>dispatch(actions.authLogin(用户名,密码))
}
}
导出默认连接(mapStateToProps、mapDispatchToProps)(NormalLoginForm);
错误无法读取未定义的属性“validateFields”
是由代码this.props.form.validateFields
引起的。您没有将表单
道具传递到组件中,因此它是未定义的
,并抛出该错误
在某个地方定义一个验证器并使用它,或者删除该行。我如何在组件中传递此表单属性?没有验证器我如何使用它。。。你想为我定义它吗…?我猜你复制粘贴了一些代码,这就是为什么它不工作的原因?查看您复制的代码,查看组件从何处调用,查看给出的
form
,并尝试从中获取validateFields
,但我怀疑这是另一个库,所以您可以自己编写一个验证程序。一些表单库会为您提供一些很好的验证功能,具有文本突出显示等功能。这可能是一个检查,它已经完成了。否则,在处理提交之前,您可以定义一些简单的检查,以确保信息有效且不为空。这是我的原始代码复制和粘贴这是否回答了您的问题?