Pol*_*lpo 3 typescript reactjs react-router-dom
我正在使用 React 17.0.2 并定义了如下路由:
export const PATH = {
editProduct: '/edit-product/:productId'
}
export const routes = [
{
path: PATH.editProduct,
render: (props) => <Product {...props}/>
}
]
export const useRoutes = () => ({ PATH, routes });
Run Code Online (Sandbox Code Playgroud)
然后将路由与“react-router-dom”版本一起使用:^5.2.0
以前的一些没有routeparams的路径使用history.push(PATH.somePath);并且它可以工作,但我想在某些组件中使用react routerParams。
喜欢:
history.push({pathname: PATH.editProduct, routerParam: {productId: "2"} });
Run Code Online (Sandbox Code Playgroud)
以前带有routeparams的路径是通过不使用PATH变量来传递的,而是输入字符串,就像history.push('/edit-product/' + productId);我想重用PATH变量一样,但我不知道如何巧妙地实现它。
如果我在history.push方法中使用PATH.editProduct,它会将routeparam与它一起放置,如/edit-product/:productId,这不是我正在寻找的行为。历史上有没有routeparams的解析方法?
里面有generatePathutil react-router-dom。
import { generatePath } from "react-router-dom";
const path = generatePath(PATH.editProduct, {
productId: 1
});
history.push(path);
Run Code Online (Sandbox Code Playgroud)
https://reactrouter.com/web/api/generatePath
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |