作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 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/
我是一名优秀的程序员,十分优秀!