【发布时间】:2018-05-25 01:19:40
【问题描述】:
我正在尝试使用 React Router 4.2.2 来加载一个名为 PostFocus 的组件,只要我点击一个“卡片”组件,并在其周围包裹一个链接。当我单击“卡片”时,路径会正确更改,但 PostFocus 组件未呈现。我在路线中做错了什么或错过了什么吗?我想不通。
代码如下:
class PostsList extends React.Component {
render() {
var createCards = this.props.posts.map((post, i) => {
return (
<div key={i}>
<Link to={`/${post.id}`}>
<Card title={post.title} subtitle={post.subtitle} date={post.date} id={post.id}/>
</Link>
<Route exact path={`/${post.id}`} render={(post) => (
<PostFocus content={post.content}/>
)}/>
</div>
);
});
return (
<div>
{createCards}
</div>
);
}
应用组件:
import React from 'react';
import PostsList from '../containers/posts_list.js';
import {withRouter} from 'react-router';
class App extends React.Component {
render() {
return(
<div>
<PostsList />
</div>
);
}
}
export default withRouter(App);
index.js 代码:
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import ReduxPromise from 'redux-promise';
import { BrowserRouter } from 'react-router-dom';
import App from './components/App.jsx';
import reducers from './reducers';
const createStoreWithMiddleware = applyMiddleware(ReduxPromise)(createStore);
ReactDOM.render(
<Provider store={createStoreWithMiddleware(reducers)}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>
, document.getElementById('root'));
【问题讨论】:
-
检查这个stackoverflow.com/questions/44356360/…,它应该可以解决你的问题
-
我进行了更改,但仍然无法正常工作:(
-
你在哪里做的改变
-
在我的 App 组件中。我会在问题中发布代码
-
您的
router.js文件(或同等文件)是什么样的?我假设您已将 PostFocus 路由/组件添加到路由器定义中?
标签: javascript reactjs react-redux react-router-v4