当前位置: 首页 > 知识库问答 >
问题:

在路由器中,道具历史被标记为需要的,但是它的值是未定义的

南宫凡
2023-03-14

我是新手。这是我的代码:

var React = require('react');
var ReactDOM = require('react-dom');
var {Route, Router, IndexRoute, hashHistory} = require('react-router');
var Main = require('Main');
ReactDOM.render(
  <Router history={hashHistory}>
  <Route path="/" component={Main}></Route>
</Router>, document.getElementById('app'));

React Router failed prop“history”未定义

当值未定义时,我如何解决历史记录被标记为必需?

升级React路由器并用browserHistory替换hashHistory

在网上进行了很多搜索,但我无法解决这个问题。反应路由器是版本4

共有3个答案

公冶伟
2023-03-14

如果你想有多条路线,你可以像这样使用交换机,

import {Switch} from 'react-router'; 

然后呢

<BrowserRouter>
     <Switch>
         <Route exact path="/" component={TodoComponent} />
         <Route path="/about" component={About} />
     </Switch>
</BrowserRouter>
郑理
2023-03-14

您使用的是哪个版本的React路由器?路由器版本4从传入browserHistory类更改为传入browserHistory实例,请参见新文档中的代码示例

这吸引了很多自动升级的人;“现在任何一天”都会发布迁移文档。

您要将其添加到顶部:

import { createBrowserHistory } from 'history'

const newHistory = createBrowserHistory();

<Router history={newHistory}/>
尉迟清野
2023-03-14

如果您使用的是react-router v4,您还需要安装react-router-dom。之后,从react-router-dom导入Browser路由器,并切换浏览器路由器的路由器。v4似乎改变了一些事情。此外,反应路由器留档是过时的。这是我的工作代码

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route } from 'react-router-dom'
import App from './components/App';

ReactDOM.render((
     <BrowserRouter>
          <Route path="/" component={App}/>
     </BrowserRouter>
     ),
     document.getElementById('root')
);

来源

 类似资料:
  • 问题内容: 我是ReactJs的新手。这是我的代码: 并使用webpack进行编译。我也将Main组件添加到了别名中。控制台抛出以下错误: 和网络上的许多搜索,但我无法解决此问题。React Router是版本4 问题答案: 如果您使用的是react-router v4,则还需要安装react-router-dom。之后,从react-router- dom导入BrowserRouter并将Swi

  • 我正在使用流并从另一个组件传递状态。我使用的是proptypes和statetypes。如何解决此错误?警告:失败的道具类型:提供给的类型的无效道具,应为。自动计算器 网页包/roi\U计算器/main。jsx WebPack/roi_calculator/视图/RoiAssumments/index.jsx

  • 问题内容: 我一直在跟踪Tyler Mcginnis的教程,并用React Router遇到了麻烦,尤其是历史记录。我最终逐字复制了他的代码只是为了看看是否只有我一个人,但我仍然 实现是: 我注意到的是模块中不存在,而是模块内部。遵循找到的API文档,我认为必须通过以下位置调用它: 这样做会产生错误。删除括号,会导致与上述历史记录相同的错误。 当我记录历史记录时,绝对是不确定的,这使我相信问题与i

  • 单击任何NavLink或Link后,它总是打开PageNotFound组件。

  • 注意:如果我像其他属性一样添加appState;提交组件中没有appState之类的属性, 如果我用这个; appState传递很好,但这次缺少历史对象,正确的方法是什么?appState只是mobx类实例。 编辑:我找到了一个“奇怪”的解决方案。我将route元素更改为此; 然后,我可以通过访问相同的历史对象在进行此更改之前,我可以将其用作 如果我让它工作正常,但是用这种方式获取这个历史对象很烦

  • 问题内容: 如何解决react-redux项目错误屏幕快照中的此错误 警告:道具类型失败:该道具在中标记为必需,但其值为。在提供者中 //在下面存储代码 问题答案: 您默认导出: 您需要通过以下方式导入它: 有两种出口: 必须用进口和 必须不带和导入 这对于从文件导出/导入多个变量/函数很有用: