reactjs - Redux表格: How to handle multiple buttons?

标签 reactjs redux redux-form

我正在尝试向 redux-form 添加第二个提交按钮.

两个按钮都应该调度一个保存数据的操作,但根据按下的按钮,用户应该被路由到不同的页面。

所以我定义了一个处理程序,并将其传递为 onSubmit支持表单。

但据我所知,只有表单数据传递给了这个处理程序:

handleSubmit 上的文档注意:

A function meant to be passed to <form onSubmit={handleSubmit}> or to <button onClick={handleSubmit}>. It will run validation, both sync and async, and, if the form is valid, it will call this.props.onSubmit(data) with the contents of the form data.

我缺少的是一种将有关按下的按钮(例如单击事件)的信息传递给我的 onSubmit 处理程序的方法,以便我可以按预期保存和路由。

最佳答案

有很多方法可以做到这一点,但它们都涉及根据按下的按钮附加按钮数据。这是一个内联版本。

class Morpheus extends Component {
  render() {
    const { handleSubmit } = this.props;
    return (
      <div>
        Fields go here
        <button onClick={handleSubmit(values => 
          this.props.onSubmit({ 
            ...values,
            pill: 'blue'
          }))}>Blue Pill</button>
        <button onClick={handleSubmit(values => 
          this.props.onSubmit({ 
            ...values,
            pill: 'red'
          }))}>Red Pill</button>
      </div>
    );
  }
}

export default reduxForm({
  form: 'morpheus'
})(Morpheus)

handleSubmit 处理所有验证检查等,如果一切都有效,它将使用表单值调用为其提供的函数。因此,我们给它一个附加额外信息并调用 onSubmit() 的函数。

关于reactjs - Redux表格: How to handle multiple buttons?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37168954/

相关文章:

reactjs - 禁止您无权访问此资源。使用 apache2 在 digitalocean 上部署时

javascript - 使用 fetch api Redux 异步请求

reactjs - 我正在使用 Redux。我应该管理 Redux 存储中的受控输入状态还是在组件级别使用 setState?

javascript - 如何清除 ReduxForm 中的单选按钮?

javascript - 在 Redux 中,使用中间件增强存储会出现 'unexpected keys' 错误

reactjs - 我应该使用 redux-form 存储而不是组件状态和 Redux 自定义存储吗?

reactjs - react-testing-library:测试评估发生得太早

java - 过滤器逻辑应该在前端还是后端?

html - 如果不弄乱表格格式,就无法分页工作

javascript - 子组件不会重新渲染,但父组件会重新渲染。如何让子组件重新渲染?