javascript - handleSubmit [React] 处理程序的正确实现
问题描述
我是 React 的新手,我不明白为什么在许多教程中开发人员submitHandler
同时提供本地函数,据我所知,handleSubmit
redux 形式已经有了e.preventDefault
,不需要添加一些额外的代码。
来自https://jasonwatmore.com/post/2017/09/16/react-redux-user-registration-and-login-tutorial-example的 LoginPage 示例
在这张图片中,LoginPage 有一个本地处理程序,它有状态管理和e.preventDefault
但是在我以 redux 形式包装的形式中,我有一个像这样定义的处理程序。
LogInForm
是一个以 redux 形式包装的 PureComponent。
从 LogIn 元素我传递给 LogInForm 一个没有 e.preventDefault
问题#1定义的处理程序:我做错了吗?
问题#2:我需要将 LogIn 包装在 PureComponent 或 Component 类中吗?
这是我的处理程序
export default function (values) {
console.log(`You submitted:\n\n${JSON.stringify(values, null, 2)}`);
}
解决方案
从LogIn
组件传递onSubmit
prop 到LogInForm
. 但是在LogInForm
组件中,您正在尝试访问this.props.handleSubmit
您分配onSubmit
给form
.
而是像这样将handleSubmit
prop 传递给LogInForm
from LogIn
-
<LogInForm handleSubmit={LoginHandler}>
推荐阅读
- c# - 在 Entity Framework Core 中包含子属性
- c# - Xamarin.Forms 从另一个控制器调用方法
- typescript - axios路由,未定义的可选参数
- django - 如何使用 ListView 多次嵌入表单(一次使用 DetailView)
- ruby-on-rails - 未定义的方法“review_groups”
- python - 无法在 Jupyter Notebook 上使用 Matplotlib 和 Numpy(ModuleNotFoundError:No module named 'numpy')
- android - 无法将字符串从一个活动传递到另一个活动
- windows - Jupyter Octave 内核内联图窗口
- java - JavaFX:从 -splash 选项开始时 useSystemMenuBar 出现问题
- javascript - VueJs 获取调用特定路由的引用 URL