使用react-router v4时,React.cloneElement不会将prop传递给子组件。我正在获取历史记录和位置道具。只是没有从mapStateToProps得到任何动作或道具。
使用react-router v3时工作正常...仅当我更新版本时才传递道具。
class Main extends React.Component{
render(){
var clonedElements = React.cloneElement(this.props.children, this.props);
return(
<div>
<h1>
<Link className='headLine' to='/'><img src='https://i.imgur.com/DFkO2gb.png'/></Link>
<p className='disclosure'>....</p>
</h1>
{clonedElements}
</div>
)
}
}
const router = (
<Provider store={store}>
<Router history={history}>
<App>
<Switch>
<Route exact render={props => <CardsGrid {...props} /> }></Route>
<Route exact path='/view/:postId' component={Single}></Route>
</Switch>
</App>
</Router>
</Provider>
)
function mapStateToProps(state){
return {
posts: state.posts,
comments: state.comments
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators(actionCreators, dispatch);
}
const App = withRouter(connect(mapStateToProps, mapDispatchToProps)(Main));
export default App;
我希望看到由初始状态设置的2个道具作为道具。我现在什么都看不到。