javascript - React Stepzilla 中的 React 路由器

标签 javascript reactjs react-router react-stepzilla

我正在使用react stepzilla为我的表单创建一个步骤向导。现在,我需要在浏览器中显示每个步骤的 URL 路径。默认情况下,stepzilla 不显示 URL 路径。

是否可以在路由中包含 React 路由器并包含 stepzilla 组件?

这是我定义步骤并渲染 React stepzilla 组件的组件:

const StepNavigation = (props) => {
  const steps =
      [
        { name: '1', component: <Intro {...props} /> },
        { name: '2', component: <UserForm {...props} /> },
        { name: '3', component: <Finish {...this.props} /> },
      ];

  return (
    <div className="stepNavigation">
      <StepZilla
        steps={steps}
        preventEnterSubmission
      />
    </div>
  );
};

export default StepNavigation;

最佳答案

这是一种方法:

import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import StepZilla from "react-stepzilla";

const Step = ({ name }) => {
  return <h1>Step:{name}</h1>;
};

const steps = [
  { name: "Step1", component: <Step name="One" /> },
  { name: "Step2", component: <Step name="Two" /> }
];

function App({ history }) {
  const handleChange = step => {
    history.push({
      pathname: "/",
      search: `?step=${step}`
    });
  };

  return (
    <div className="App">
      <StepZilla steps={steps} onStepChange={handleChange} />
    </div>
  );
}

const RoutedApp = () => (
  <BrowserRouter>
    <Switch>
      <Route path="/" render={App} />
    </Switch>
  </BrowserRouter>
);

const rootElement = document.getElementById("root");
ReactDOM.render(<RoutedApp />, rootElement);

CodeSandbox 示例 here .

关于javascript - React Stepzilla 中的 React 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641917/

相关文章:

javascript - 移动导航 "Back"链接问题

javascript - .datepicker() 函数在第二次单击时起作用

reactjs - 在开发模式下使用create-react-app时如何将应用程序放入子文件夹中?

javascript - 未捕获的类型错误 : match is undefined

javascript - javascript中的随机数

javascript - AngularJS 路由有时无法在 IE10 上运行

reactjs - 状态重定向在 React Router 4.x 中不起作用

javascript - Flux 抛出 Dispatcher 不是构造函数

javascript - Reactjs 数组突变

reactjs - 带有react-router-dom的路由在父容器中打开