【问题标题】:React router pressing back in the browser changes props在浏览器中按下反应路由器会更改道具
【发布时间】:2018-09-15 17:22:04
【问题描述】:

如标题所示,我有 2 条路线,一条主要路线为“Home”,然后当按下 Home 组件的其中一个链接时,它会转到“/m/milestoneID/p/projectID”,无论何时第二条路线并在浏览器中按回我收到错误消息,似乎我使用 .reverse() 传递给 Home 组件的数据在支持后不再反转。

const App = () => (
  <Router>
    <div>
      <Switch>
        <Route path="/m/:milestoneID/p/:projectID" component={ProjectDetails} />
        <Route component={Home} />
      </Switch>
    </div>
  </Router>
);
const Home = () => {
  return (
    <div>
      <ChronologyGraph
        width="1000"
        height="2000"
        nodeSize={10}
        milestones={milestones.reverse()}
        columns={nodeTypes}
      />
    </div>
  );
};

【问题讨论】:

  • 里程碑是从哪里传递过来的?是道具吗?
  • @AntonioPangallo 是的道具

标签: reactjs react-router react-router-dom


【解决方案1】:

您需要在路由器中提供历史记录:

import { Router } from 'react-router'
import createBrowserHistory from 'history/createBrowserHistory'

const history = createBrowserHistory()

<Router history={history}>

【讨论】:

  • 我试过了,同样的错误发生imgur.com/a/KtpHnju这个问题是因为在按下后由于某种原因,道具中的数据'unreversed'
  • 你用过withRouter吗?您还需要使用 withRouter 来获取历史道具。
  • 我没有,我现在就试试,虽然我想知道为什么道具会弄乱?对于这样一个简单的网站来说,这似乎有点矫枉过正
猜你喜欢
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2016-09-05
  • 2017-05-27
  • 2021-02-22
  • 2017-01-06
相关资源
最近更新 更多