Javascript 反应路由器参数化重定向
我很难弄清楚如何参数化路由字符串以进行编程重定向 我在Javascript 反应路由器参数化重定向,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我很难弄清楚如何参数化路由字符串以进行编程重定向 我在/constants/routes.js中的设置 export defaults { user_details: '/user/:id/details', } 我想以编程方式将:id参数按如下方式推送 import routes from '../../constants/routes.js' const UserListItem = ({name, id, history}) => ( <li onClick={ ()
/constants/routes.js中的设置
export defaults {
user_details: '/user/:id/details',
}
我想以编程方式将:id
参数按如下方式推送
import routes from '../../constants/routes.js'
const UserListItem = ({name, id, history}) => (
<li onClick={ () => history.push(routes.user_details, {id}) }>
{name}
</li>
)
从“../../constants/routes.js”导入路由
constUserListItem=({name,id,history})=>(
history.push(routes.user_details,{id}}>
{name}
)
互联网上似乎充斥着
,这似乎并不理想,因为我想重用我的固定路线取决于你如何使用这些路线常量,我想。我也不知道“绕过任何规则”是什么意思,但是你可以把常数改成函数
export defaults {
userDetails: (id = ":id") => `/user/${id}/details`,
}
用法:
path={routes.userDetails()} -> `/user/:id/details`
history.push(routes.userDetails("abc123")) -> `/user/abc123/details`
routes.user\u details.replace(':id',id)
?是的,但这将绕过现有的任何规则。我希望你能为这件事做点什么?它不会绕过任何规则。你是什么意思?这是一个一次性的解决方案,我必须为我构建的每个路由进行替换,例如,它不支持/user/:id/messages/:status(active | inactive)
。正如我提到的,我希望react路由器能为此提供一个实用程序。谢谢,我希望react路由器能提供这种类型的实用程序,而不是我自己写的。