编辑:我找到了解决方案,我忘记了switch
routes.js
组件
我创建了一条这样的路线:/post/:id
我的routes.js
看起来像:
import React, { Component } from "react";
import { BrowserRouter, Route } from "react-router-dom";
import Posts from "./components/Posts";
import Post from "./components/Post";
class Routes extends Component {
render() {
return (
<div>
<BrowserRouter>
<div>
<Route exact path="/" component={Posts} />
<Route path="/post/:id" component={Post} />
</div>
</BrowserRouter>
</div>
);
}
}
export default Routes;
在我的/
路线中,我列出了我的所有posts
,当我点击其中一个时,我会更新网址http://localhost:3000/post/1
。
PS:我尝试使用withRouter
函数,就像在react-router的官方文档中所说的那样,但这种情况在我的情况下不起作用。
有问题的文件是post.js
,如下所示:
import React, { Component } from "react";
import { active_post } from "../actions/index";
import { bindActionCreators } from "redux";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
class Post extends Component {
componentWillMount() {
this.props.active_post(this.props.match.params.id);
}
render() {
console.log(this.props.post);
return (
<div>
<h1>Detail d'un post</h1>
<p>{this.props.match.params.id}</p>
</div>
);
}
}
function mapStateToProps(state) {
return {
post: state.activePost
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ active_post }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(Post);
例如,如果我在网址栏http://localhost:3000/post/3
中手动输入,例如我有组件,console.log()
在我需要时添加帖子。
所以,如果你有这个案例的解决方案,我就拿这个。 谢谢你:)
答案 0 :(得分:0)
您应该尝试在您的路线周围添加来自react-router-dom的function MakeString()
{
foreach(/*for each here*/)
{
$string = $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
$string .= $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
$string .= $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
}
return $string;
}
$vars = array
(
'name' => $info['name'],
'address' => $info['address'],
'phone' => $info['phone'],
'string-here' => MakeString(),
);
$new_rtf = populate_RTF($vars, $template);
$fr = fopen($saveLocation.$filename, 'w') ;
fwrite($fr, $new_rtf);
fclose($fr);
。
Switch
不要忘记在组件中包含react-router-dom的Switch模块。
<BrowserRouter>
<div>
<Switch>
<Route exact path="/" component={Posts} />
<Route path="/post/:id" component={Post} />
</Switch>
</div>
</BrowserRouter>