javascript - 在一个组件中加载不同的组件 - reactjs

标签 javascript reactjs react-router

我正在用 reactjs 创建一个 4 步表单。

主要组件正在加载其中的子组件。

当用户填写一个表单并按继续时,它应该保存表单 1 的值并加载 form2 代替表单 1。我将如何实现它。

表格 1

handleClick() { //When user submits form 1
    //Save All Values of form 1 and load form 2 


    //window.openAppRoute("/payments"); //Not Working
    //hashHistory.push('/dashboard'); //Not Working
    //history.push('/dashboard'); //Not Working
}

主要成分:

return (
  <div className="custom-container">

    <div className="page-content">
        <Form1 />
        //<Form2 /> Should load next
        //<Form3 /> Should load next
    </div>
  </div>
)

最佳答案

有两种方法可以做到这一点。要么在容器 App 组件内创建每个组件并使用状态变量控制应显示的步骤,要么创建相互链接的子路由。

第一种方法的例子:

class MyApp extends React.Component {
  constructor() {
    super();
    this.state = {
      step: 0
    };
  }
  
  nextStep = () => {
    this.setState((prevState) => ({step: prevState.step + 1}));
  }
 
  render() {
    let {step} = this.state;
    let form = [<Form1 />, <Form2 />, <Form3 />];
    return(
      <div>
        {form[step]}
        {form.length-1 > step && <button onClick={this.nextStep}>Next</button>}
      </div>
    );
  }
}

const Form1 = () => <div>Form 1</div>;
const Form2 = () => <div>Form 2</div>;
const Form3 = () => <div>Form 3</div>;
 
ReactDOM.render(<MyApp />, document.getElementById("app"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>

关于javascript - 在一个组件中加载不同的组件 - reactjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276920/

相关文章:

javascript - 如何防止其元素内的链接默认?

javascript - React中箭头函数的正确使用

javascript - Url Loader,加载我的背景图片一次,然后在刷新页面后它无法显示

reactjs - Sublime 没有语法高亮 React 函数吗?

javascript - 在 protected 路线 reactjs 中传递 Prop

javascript - 在 JavaScript IF 语句中使用匿名函数

javascript - 如何将 blob 转换为 xlsx 或 csv?

javascript - React 路由器与 Meteor : How to remove code param from URL after redirect from OAuth without reload

javascript - 单击按钮时.show() 不起作用

reactjs - react 路由组件 Prop