代码之家  ›  专栏  ›  技术社区  ›  gia

具有分叉步骤的ReduxForm向导

  •  1
  • gia  · 技术社区  · 6 年前

    我正在尝试构建一个reduxform,其中我有一个父页面和step1、step2组件,比如 site

    步骤1有一个包含2个值的下拉列表- 让我们说“A”和“B” Step2有几个表单输入详细信息 如果我在步骤1下拉列表中有值“A”,我将继续步骤2,向nodejs/mongo发送post请求,并重定向到成功页面

    (现在的主要问题是:-我如何做以下工作)

    如果我在步骤1中有值“B”,那么步骤2应该继续到步骤3,然后在某个点发布到DB等

    如何拆分向导流? 任何非常受欢迎的潜在客户-Im v v new to react/redux和redux Forms,并在最后期限内。。为“noob”道歉

    1 回复  |  直到 6 年前
        1
  •  0
  •   Peter Riesz    6 年前

    这个 onSubmit func接收要提交的表单的值:

    onSubmit(values, dispatch, props)
    

    在示例中,每个步骤使用相同的形式 'wizard' 所以 values 包含所有向导步骤的状态。您可以使用此选项确定下一步:

    class WizardForm extends Component {
      constructor(props) {
        super(props)
        this.firstPageSubmit = this.firstPageSubmit.bind(this);
        this.secondPageSubmit = this.secondPageSubmit.bind(this);
        this.thirdPageSubmit= this.thirdPageSubmit.bind(this);
        this.state = { page: 1 };
      }
      firstPageSubmit(values) {
        this.setState({ page: 2  });
      }
      secondPageSubmit(values) {
        if(values.dropdown == 'A') {
          // post request to nodejs/mongo and redirect to a success page
        } else {
          this.setState({ page: this.state.page - 1 });
        }
      }
      thirdPageSubmit(values) {
        // at somepoint post to DB etc
      }
    
      render() {
        const { onSubmit } = this.props
        const { page } = this.state
        return (
          <div>
            {page === 1 && <WizardFormFirstPage onSubmit={this.firstPageSubmit} />}
            {page === 2 && <WizardFormSecondPage onSubmit={this.secondPageSubmit} />}
            {page === 3 && <WizardFormThirdPage onSubmit={this.thirdPageSubmit} />)}
          </div>
        )
      }
    }