React Router v6 和自己的参数不像 v5 那样工作
React Router v6 and ownParams doesnt work like v5
你好,在 React 路由器 dom v5 中,我可以在 redux 中获取参数。示例代码如下:
1-传递参数
<Route path="/saveproduct/:productId" component={AddOrUpdateProduct} />
2- 在 redux 中获取参数。我可以在 ownProps
中获取 productId
function mapStateToProps(state, ownProps) {...
但是当我在 v6 中调用路由时,我无法在 ownProps 中获取 productId
首先,在 react-router-dom v6 中,你应该像元素一样将组件传递给路由。参见 docs。
<Route path="/saveproduct/:productId" element={ <AddOrUpdateProduct /> } />
第二,
react-router-dom v6 Route components rendered via the element prop don't receive route props
参见。这里不需要 Redux。只需使用参数反应钩子
const { productId } = useParams();
我是 React 的新手,我花了一天时间。但最后我找到了解决方案。我不确定这是最佳做法,但现在对我来说很有意义。检查 link 解决方案。
https://youtu.be/qdCHEUaFhBk
也感谢@kupp
你好,在 React 路由器 dom v5 中,我可以在 redux 中获取参数。示例代码如下:
1-传递参数
<Route path="/saveproduct/:productId" component={AddOrUpdateProduct} />
2- 在 redux 中获取参数。我可以在 ownProps
中获取 productIdfunction mapStateToProps(state, ownProps) {...
但是当我在 v6 中调用路由时,我无法在 ownProps 中获取 productId
首先,在 react-router-dom v6 中,你应该像元素一样将组件传递给路由。参见 docs。
<Route path="/saveproduct/:productId" element={ <AddOrUpdateProduct /> } />
第二,
react-router-dom v6 Route components rendered via the element prop don't receive route props
参见
const { productId } = useParams();
我是 React 的新手,我花了一天时间。但最后我找到了解决方案。我不确定这是最佳做法,但现在对我来说很有意义。检查 link 解决方案。
https://youtu.be/qdCHEUaFhBk 也感谢@kupp