javascript - react 路由器参数化重定向

标签 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={ () => history.push(routes.user_details, {id}) }>
  {name}
  </li>
)

互联网上似乎充斥着<Redirect to={/user/${id}/details} />这似乎不是最佳选择,因为我想重用我的固定路线

最佳答案

我猜这取决于你如何使用这些路由常量。我也不确定“绕过任何规则”是什么意思,但您也许可以将常量更改为函数。

export defaults {
  userDetails: (id = ":id") => `/user/${id}/details`,
}

用法:

path={routes.userDetails()} -> `/user/:id/details`

history.push(routes.userDetails("abc123")) -> `/user/abc123/details`

关于javascript - react 路由器参数化重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55229757/

相关文章:

node.js - React webapp在PROD环境中不断加载本地主机资源

reactjs - React Antd 模态属性 'children' 在类型 'IntrinsicAttributes & ModalProps' 上不存在

javascript - 使用高阶组件进行身份验证时如何延迟检查 redux 存储

javascript - npm install Specific version 不安装特定版本

Javascript 正则表达式 : replacing $1 with f($1)

javascript - 仅删除数组中的 "strings"

javascript - jquery 或 javascript - 将文本编辑器中的文本添加到变量中

javascript - 为什么在 javascript 中过滤扩展数组的类的对象调用它的构造函数?

javascript - 为什么在 react-native 中使用 this.props.navigator.replace 再次渲染同一个场景?

reactjs - (React-Native) undefined 不是一个对象(评估 _'this.props.navigation.navigate' )