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

无法通过react路由器将道具传递给组件

  •  1
  • Arnab  · 技术社区  · 8 年前

    import React from 'react';
    import ReactDOM from 'react-dom';
    import { BrowserRouter, Route, Switch } from 'react-router-dom';
    import 'normalize.css/normalize.css';
    import './styles/styles.scss';
    
    const EditExpensePage = props => {
      console.log(props);
    
      return <div>Editing the expense with id of </div>;
    };
    
    const AppRouter = () => {
      return (
        <BrowserRouter>
          <div>
            <Switch>
              <Route path="/edit/:id" component={EditExpensePage} />
            </Switch>
          </div>
        </BrowserRouter>
      );
    };
    
    ReactDOM.render(<AppRouter />, document.getElementById('appDiv'));
    

    错误屏幕截图

    Error screenshot

    我正在尝试访问 身份证件 就这么简单。

    错误仅在我尝试传递道具时显示

    path="/edit/:id"
    

    源链接: https://reacttraining.com/react-router/web/api/Route/route-props

    3 回复  |  直到 8 年前
        1
  •  3
  •   Estus Flask    8 年前

    这和我们的问题是一样的 this question . 问题是特定于设置的。如错误消息所示, bundle.js /edit/bundle.js /bundle.js .

    <script type="text/javascript" src="/bundle.js"></script>
    

    或应指定基本URL:

    <base href="/">
    
        2
  •  1
  •   dijkstraman    8 年前

    这可能是你的本地环境的问题,我看你的代码没有任何问题。我试过了 https://codesandbox.io/s/ox773ywmn9

        3
  •  0
  •   StelioK    7 年前

    我可以使用以下方法访问子组件中的道具:

    this.props.match.params.id
    
    推荐文章