forms - 反应连接 2 个按钮
问题描述
你好我有一个疯狂的问题:
问题是我有这样的结构:
1)数组步骤:
|- 第一步
|- 第二步
|- 第三步
|- 第四步
2)组件多步:
{这里是设置步骤的逻辑}
在这个组件的最后是
<div>
<button className={this.state.showNextBtn}
onClick={this.next}>Next</button>
</div>
onClick是将步骤更改为下一步的非常重要的操作。
next() {
this.setNavState(this.state.compState + 1)
}
接下来我要渲染
const StepOneFormValidation = (props) => {
const { handleSubmit, pristine, reset, submitting } = props
return (
<form onSubmit={handleSubmit}>
<Field name="name"
type="text"
component={renderField}
label="Username"
autoFocus
require/>
<Field name="email"
type="email"
component={renderField}
label="Email"
require/>
<div>
<button className ="hero_button margin_left" type="submit" disabled={submitting}>Submit</button>
</div>
</form>
那么如何连接这个按钮呢?我不能以组件形式声明 const 并且不能以 const 声明组件
解决方案
我在这里看到的两种方式:
1:使用react-router-redux;你的路线可能是这样/form/step1
的,在提交表单之后dispatch(push('/form/step2'))
,不要忘记创建和routerMiddleWare
应用history
。
2: 对“步进器”使用全局状态或将其状态作为道具传递;想象一下你的全局状态:
{currentStep: 1, validate: {form1: true, form2: false, ...}}
您需要使用 redux 全局控制您的“步进器”状态,或者通过从<Stepper currentStep={this.props.currentStep}/>
组件传递道具来完成它。
如果将其分解为如下组件,则控制和理解应用程序中的所有内容会容易得多:
render(){
return (
<div>
<Stepper currentStep={this.props.currentStep}/>
<Forms currentStep={this.props.currentStep} onSubmit={handleSumbitAndStepSwitching}/>
</div>
)
};
并且<Forms />
您可以制作 Switch-Case 以控制实际呈现的形式。
推荐阅读
- ios - ios swift中的形状
- powershell - PowerShell 脚本:注册表项在创建时不保存
- pycharm - 如何查看 Pycharm 的运行命令,以便我可以将其复制到 Jenkins
- angular - 错误:所需的请求部分“excelFile”不存在。尝试将 excel 文件从 Angular 应用程序上传到 Spring Boot Server 时
- go - 在 Go 中设置基本 Kafka 消费者和生产者时出现 security.protocol 错误?
- mongodb - Mongo聚合:从键值对象返回不同值的计数
- python - 在 Spyder 中启动内核时出错
- mysql - MySQL 5.7 JSON_REMOVE 在一个查询中从数组中删除多个值
- html - Angular 11:我无法显示 pdf
- python - 删除重复的项目并在python中添加类似的项目