【问题标题】:React router history is string?反应路由器历史是字符串?
【发布时间】:2017-03-14 09:01:34
【问题描述】:

我正在尝试使用哈希历史在浏览器中开始使用 react router,我从版本 3 的指南中复制了此代码。

import React from "react";
import ReactDOM from "react-dom";
import {  Router,  Route,  Link, hashHistory } from 'react-router';

const App = React.createClass({
  render() {
    return (
      <div>
        <h1>App</h1>
        <ul>
          <li><Link to="/about">About</Link></li>
          <li><Link to="/inbox">Inbox</Link></li>
        </ul>
        {this.props.children}
      </div>
    )
  }
})

const About = React.createClass({
  render() {
    return <h3>About</h3>
  }
})

const Inbox = React.createClass({
  render() {
    return (
      <div>
        <h2>Inbox</h2>
        {this.props.children || "Welcome to your Inbox"}
      </div>
    )
  }
})

const Message = React.createClass({
  render() {
    return <h3>Message {this.props.params.id}</h3>
  }
})

var history = hashHistory;

console.log(history);

ReactDOM.render((
  <Router history="{history}">
    <Route path="/" component={App}>
      <Route path="about" component={About} />
      <Route path="inbox" component={Inbox}>
        <Route path="messages/:id" component={Message} />
      </Route>
    </Route>
  </Router>
),
document.getElementById('app-root'));

当我打开文档时出现这些错误

警告:失败的道具类型:无效的道具history 类型为string 提供给Router,预期object

在那之前我登录了history,它看起来像一个对象

未捕获的错误:您提供了使用历史 v4.x 或 v2.x 及更早版本创建的历史对象。这个版本的 React Router 仅 与 v3 历史对象兼容。请切换到历史 v3.x。

我已经安装了react-router@3history@3,我可以确认

+-- react-router@3.0.2 无关

我在列表中找不到history,但如果我转到目录我可以看到package.json

"version": "3.3.0"

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    从历史中删除“”符号

    <Router history={history}>
    

    【讨论】:

    • facepalmmmmmmmmmmmmmmmmmmmm
    猜你喜欢
    • 1970-01-01
    • 2016-05-28
    • 2020-12-13
    • 2016-04-08
    • 2017-05-27
    • 2018-12-12
    • 2019-03-03
    • 2019-12-15
    • 2020-09-06
    相关资源
    最近更新 更多