React 处理表单提交

2024-03-26

我正在尝试在 React/Redux 中创建一个表单。现在我只希望表单在提交表单时触发我的函数handleSubmit。然而目前看来该功能是在页面加载时立即触发的......

export default class AssetsAdd extends React.Component {

  componentDidMount() {
    console.log(this)
  }

  handleSubmit(event) {
    if (this.refs.titleInput !== '') {
      event.preventDefault();
      var asset = {
        date: '',
        title : this.refs.titleInput.value,
        id : '',
        type: this.refs.typeInput.value
      }

      return this.props.dispatch(addAsset(asset))
    }


  }

  render() {
    return (
      <div>
        <Row>
          <Portlet title='New Asset' form>
            <Form horizontal onSubmit={this.handleSubmit}>
              <FormGroup>
                <Label text='Title' size='3' />
                <Input ref="titleInput" placeholder='Enter asset title' size='4'/>
              </FormGroup>
              <FormGroup>
                <Label text='Type' size='3' />
                <Input ref="typeInput" placeholder='Enter asset type' size='4'/>
              </FormGroup>
              <FormGroup>
                <Label text='Description' size='3' />
                <Input ref="descriptionInput" placeholder='Enter asset description' size='4'/>
              </FormGroup>
              <FormGroup>
                <Label text='Documentation' size='3' />
                <Input ref="documentationInput" placeholder='Enter documentation URL' size='4'/>
              </FormGroup>
              <FormActionBar>
                <SubmitButton value='Submit'/>
                <CancelButton value='Cancel'/>
              </FormActionBar>
            </Form>
          </Portlet>
        </Row>
      </div>
    )
  }
}

function mapStateToProps(state) {
  return {
    assets: state.assets
  };
}

export const AssetAddContainer = connect(mapStateToProps)(AssetsAdd);

我知道代码的其余部分尚不完全正确,但我现在主要关心的是在正确的时刻触发 onSubmit 操作。

提前致谢!


看起来你没有绑定你的handleSubmit.

From the docs https://facebook.github.io/react/docs/handling-events.html:

方法遵循与常规 ES6 类相同的语义,这意味着 他们不会自动将 this 绑定到实例。

你有三个选择

  1. 添加构造函数并在那里进行绑定(推荐):

    this.handleSubmit = this.handleSubmit.bind(this);

  2. 直接绑定:

    onSubmit={this.handleSubmit.bind(this)}

  3. 使用箭头=>功能

    onSubmit={() => this.handleSubmit}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 处理表单提交 的相关文章

  • 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

    我下面有一个字符串 它是以英镑为单位的价格 我想删除货币符号 然后将其转换为我可以用来与另一个值进行比较的数字 价格 例如 X gt Y 14 50 我之前已将字符串转换为用于货币的数字 var priceNum parseFloat pr
  • 在 HTML SELECT 标记中禁用键盘

    我想禁用 HTML SELECT 标记的键盘 以便用户只能使用鼠标来选择选项 我试过了event cancelBubble true on the onkeydown onkeyup and onkeypress没有运气的事件 有任何想法吗
  • npm 脚本:node-sass 不监视部分 sass 文件

    我有这个项目结构 src assets css sass main scss variables scss 我正在尝试编写一个 npm 脚本 该脚本将监视我的所有 scss 文件 包括部分文件 中的更改 然后仅编译我的 main scss
  • 一个文本区域中的文本应复制到另一个文本区域,并且应使用 JavaScript 单击按钮清除原始文本区域

    我已经完成了以下代码 它显示两个文本区域 其中一个文本区域中的文本通过使用 javascript 单击按钮复制到另一个文本区域
  • 对 JavaScript 中的 while 循环感到困惑

    我可能在这里有点厚重 但请回答我这个问题 考虑以下代码 a 1 while a lt 6 console log a a 如果我运行这个 我会在控制台中得到从 1 到 6 的值 然后是另一个 6 现在看看这个 a 1 while a lt
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • 在 AngularJS 中覆盖运行时的依赖关系

    我有一个服务叫 doggedHttp 它公开了与 http 现在我想创建一个 doggedResource服务是有角度的 resource服务之上 doggedHttp代替 http 换句话说我想注入 doggedHttp as the h
  • 嵌套对象的 AJV 模式验证

    函数返回的对象看起来像这样 answer vehicle type 1 message Car model VW color red 答案 对象始终存在 其他字段基于 vehicle type E g 如果vehicle type 1 则有
  • 避免 AngularJS 部分视图在 IE 中缓存

    我正在开发一个 ASP NET MVC 应用程序 它也有一些 angularJS 我有一个主页 其中有不同的选项卡 当您单击它们时 它们会加载角度部分视图 主页是这样的 div class widget div div class widg
  • 在 Chrome 中检索浏览器语言

    我一直在尝试让 momentjs 正确检测浏览器语言并本地化时间显示 按照使用 Moment js 进行区域设置检测 https stackoverflow com questions 25725882 locale detection w
  • 使用 test() 通过正则表达式进行信用卡验证

    我正在尝试完成一些作业 看来这本书可能做错了 我有一个简单的 html 页面 允许用户在我们的例子中选择信用卡 美国运通卡 然后 用户输入一个数字并根据正则表达式评估该数字 我的问题最终是当 test 计算它返回的数字时是布尔值还是字符串
  • Firefox OS 后台服务

    我想构建一个应用程序 用户可以通过它输入一些设置 并且应用程序将启动后台服务来根据这些设置执行一些任务 我只想在模拟器中运行应用程序和后台服务 我知道它需要 认证 模式才能运行后台服务 但我现在不考虑在 Firefox Marketplac
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 将 javascript 变量发送到服务器端 ASP .NET

    我需要在回发时将 JavaScript 数据传递到服务器端 Exvar jsVariableToPass new Object jsVariableToPass key1 value1 jsVariableToPass key2 value
  • 如何在 svelte 中制作搜索过滤器

    我有两个组件在组件树中距离很远 我对如何在两者之间进行通信存有疑问 我有搜索组件 listItems 和商店 商店 svelte
  • 如何检查摘要周期是否稳定(又名“Angular 完成编译了吗?”)

    tl dr 最初的问题是 如何在每个摘要周期触发回调 但潜在的问题更有趣 因为这回答了两个问题 所以我继续修改了标题 Context 在解决了所有依赖项 nginclude API 调用等之后 我试图控制 Angular 何时完成 HTML
  • 如何修复 AJAX 在选中复选框时始终触发?

    有时这个 AJAX 会触发 有时不会 让我解释一下 habit js document ready function habit check change function habit this parent siblings habit
  • JQuery 表单提交不发送帖子

    我在使用 JQuery 提交表单时遇到问题 当按下提交按钮时 表单会正确提交 但是当我尝试使用时 somebutton click function form myForm submit 我还尝试从 Chrome 控制台调用表单提交 表单未
  • React + 路由器 + Google 标签管理器

    我花了一些时间在 Quickcypher com 上开发 MVP 我想开始进行一些分析 它对于跟踪总访问量非常有用 但是当我尝试跟踪使用 React Router 的网站上的不同 URL 时 情况却出问题了 我的方法是这样的 设置一个在某些

随机推荐

  • iTunesConnect - 自动下载应用程序的使用情况分析

    iTunes 连接 https itunesconnect apple com的应用程序分析页面有两个部分 销售和使用情况 对于第一部分 他们有自动摄取工具 https www apple com itunesnews docs AppSt
  • 在 Swift 3 中使用 -observeValueForKeyPath:ofObject:change:context:

    我正在尝试将 Swift 2 2 项目转换为 Swift 3 但收到以下错误 Method observeValue forKeyPath ofObject change context with Objective C selector
  • 将人类友好的日期转换为毫秒[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何将人类友好的日期转换为自 UNI
  • 如何在 Linux 中获取“文件创建时间”

    我需要找出在 Linux 中使用 C 创建文件的时间和日期 如何获取文件的最后修改日期 http www jb man ac uk slowe cpp lastmod html struct stat attrib 1 create a f
  • 在特定时间过后自动更改 WooCommerce 订单状态?

    有没有办法让 WooCommerce 在经过这么长时间后自动将自定义订单状态更改为不同的自定义订单状态 基本上 我希望所有订单状态更改为 退款已提交 的订单在 30 天后自动更改为 退款已过期 我意识到这些不是正常的 WooCommerce
  • Google OAuth 访问令牌

    我对 OAuth 和 Google 感到很困惑 我花了很长时间才获得刷新令牌来创建新的访问令牌 然后发现refresh token也过期了 这有什么意义啊 我需要做的就是保留一个有效的 access token 以供使用legato htt
  • 如何在 WebView 中加载 HTML 页面时显示进度对话框

    我正在使用 Web 视图来显示 html 页面 并且我想在页面加载之前显示一个进度对话框 完成后 对话框必须消失 我为此使用了 AsyncTask 但对话框不显示 请参阅下面的我的代码 class DownloadAysnc extends
  • 异步调用完成后渲染 React 函数组件的一部分

    我将 Material ui 与 React 函数组件一起使用 并使用其自动完成组件 我自定义了它 每当我更改输入字段中的文本时 我希望该组件呈现新的搜索结果 callAPI xyz 我在操作中调用 API 并使用 xyz 参数 从该函数组
  • 不同的构建操作在 csproj 中有何作用? IE。附加文件或假货

    不同的构建操作在 Web API 项目中起什么作用 也可能适用于其他类型 我看到 无 编译 内容 嵌入式资源 AdditionalFiles CodeAnalysisDictionary ApplicationDefinition 页面 资
  • Windows 10 上的 npx 和 nvm 导致需要安装以下软件包

    我已经安装了用于 Windows 的 nvm https github com coreybutler nvm windows和 nvm 列表显示 17 2 0 16 13 1 Currently using 64 bit executab
  • 如何在 SwiftUI 中使用 DatePicker 创建提醒

    我要显示DatePicker在警报视图或操作表视图中 但我找不到任何资源来执行此操作 我想要以下视图 谢谢您的帮助 你想要的实际上是被苹果劝阻的 根据这个答案 https stackoverflow com a 26342100 86977
  • 图标不是 3.00 格式

    在 Visual Studio 2008 中构建 C 应用程序时 我收到以下错误 iconfile ico 不是 3 00 格式 我使用 Paint 创建了图标文件 并将其保存为 ico 文件 我尝试将其保存为 16 位 24 位和 256
  • 仅匹配括号内字符的模式

    我在这里查看了很多关于 SO 的帖子 其中包含有关 REGEX 模式的建议 以从括号中获取文本 但是 根据我的研究 我找不到有效的解决方案 例如 我查看了以下内容 R 正则表达式提取包含关键字的括号之间的文本 https stackover
  • PHP性能考虑?

    我正在建造一个PHP网站 但目前唯一PHP我在某些页面上使用的是六个左右的包含内容 我最终可能会使用一些数据库查询 很简单include 声明关注速度或扩展 而不是静态HTML 什么样的事情容易导致网站陷入困境 当然 include 比静态
  • Activity 方法:onCreate() 和 onDestroy()

    当第一次创建活动时 系统会调用OnContentChanged 方法作为系统的第一个方法和最后一个调用是OnDetachedFromWindow 方法当一个 Activity 被杀死时 但 android 文档说 Activity 的整个生
  • 如何使用PageDown Markdown编辑器?

    我想为用户提供实时预览使用 Markdown 创建的笔记的能力 但是我在该项目中找不到任何下载 我怎样才能开始使用PageDown 降价 https github com balpha pagedown编辑 PageDown 的文档非常混乱
  • 使用 pyExcelerator/xlrd 进行数据透视

    如何使用 pyExcelerator xlrd 等 Python 库创建带有数据透视表的工作表 在 Excel 工作簿中 我需要生成一份每日报告 其中有一个数据透视表来汇总其他工作表上的数据 一种选择是使用一个空白模板 我可以复制该模板并用
  • TFS 分支和合并策略

    我在 TFS 中有一个团队项目 每天都会提交任务 我想独立完成每个任务 然后在测试后将其合并到主线中 目前有一个 MAIN 分支和一个 DEV 分支 它是 MAIN 的子分支 更改在 DEV 分支中进行 然后在准备就绪时合并到 MAIN 中
  • 什么时候应该尝试消除 switch 语句? [复制]

    这个问题在这里已经有答案了 我在我正在处理的代码库中遇到了一个 switch 语句 我正在尝试找出如何用更好的东西替换它switch 语句被认为是代码味道 http c2 com cgi wiki SwitchStatementsSmell
  • React 处理表单提交

    我正在尝试在 React Redux 中创建一个表单 现在我只希望表单在提交表单时触发我的函数handleSubmit 然而目前看来该功能是在页面加载时立即触发的 export default class AssetsAdd extends