你能不能告诉我为什么路由器在反应js中是未定义的。我已经在我的codepen中导入react-router.js文件
这是我的代码 http://codepen.io/naveennsit/pen/pymqPa?editors=1010
class App extends React.Component {
render() {
return <Router>
<Route path='/' component={first}></Route>
<Route path='/about' component={second}></Route>
</Router>
}
}
class second extends React.Component {
render() {
return <label>second component</label>
}
}
class first extends React.Component {
render() {
return <label>first component</label>
}
}
React.render( < App / > , document.getElementById('app'))
答案 0 :(得分:1)
您需要使用BrowserRouter(react-router-dom)软件包而不是Router。您的代码如下所示:
const click2dial_Event = function(e) {
e.preventDefault();
let a = $(this), number;
if (a.attr('href') !== '#') {
number = a.attr('href');
number = number.substr(4);
a.attr('href', '#');
a.attr('data-dial', number)
a.addClass('click-to-dial');
} else {
number = a.attr('data-dial');
}
//...
};
$(document).on('mousedown', "a[href^='tel']", click2dial_Event);
$(document).on('mousedown', '.click-to-dial', click2dial_Event);
还请注意ReactRouter中的div标签,否则将收到“一台路由器可能只有一个子元素”错误。
答案 1 :(得分:0)
根据documentation,当您通过<script>
标记添加库时,该库将在window.ReactRouter
上提供。
您可以在文件顶部添加以下作业:
{ Router } = ReactRouter;
这会将Router
组件从react-router
公开给变量Router
,这是您的代码所期望的。
答案 2 :(得分:0)
您可能需要支持返回的JSX:
return (
<Router>
<Route path='/' component={first}></Route>
<Route path='/about' component={second}></Route>
</Router>
)
答案 3 :(得分:0)
删除脚本标记时应初始化别名。
尝试类似:
var Router = window.ReactRouter;
var Route = window.ReactRouter.Ruote;
代码的开头