我正在使用react路由器,我想通过单击一行重定向到详细页面。
这是我的组件
<Table
model={TypeModel}
source={this.props.types}
selectable={false}
onRowClick={index => this.context.router.push(`/dashboard/types/${this.props.types[index].id}`)}
/>
单击url时,url将更改,但我的页面保持不变。我是这样定义路线的
{
path: '/dashboard',
component: requireAuthentication(DashboardLayout),
indexRoute: Dashboard,
childRoutes: [{
path: 'types',
indexRoute: TypeListRoute(store),
childRoutes: [
TypeDetailsRoute(store) // The path of this route is :id
]
}]
}
我不知道为什么,这是工作在其他地方的应用程序。我也检查并尝试了这个线程
我错过什么了吗?
我的路由器看起来像
const routes = createRoutes(store)
<Router history={browserHistory} children={routes} />
使用以下createRoutes
方法
createRoutes = store => ({
childRoutes: [{
path: '/',
component: HomeLayout,
indexRoute: Home,
childRoutes: [
LoginRoute(store),
LogoutRoute(store),
SignupRoute(store)
]
}, {
path: '/dashboard',
component: requireAuthentication(DashboardLayout),
indexRoute: Dashboard,
childRoutes: [
DeviceRoute(store),
UserRoute(store),
{
path: 'types',
indexRoute: TypeListRoute(store),
childRoutes: [
TypeDetailsRoute(store)
]
}
]
}]
})
仪表板布局
是一个react组件,它将子级封装到一些组件中
export class DashboardLayout extends React.Component {
constructor (props) {
super(props)
this.children = props.children
}
render () {
return (
<Layout theme={drawerTheme}>
<NavDrawer pinned >...</NavDrawer>
<Panel>
{this.children}
</Panel>
</Layout>
)
}
}
TypeListRoute
如下所示
export const TypeListRoute = store => ({
getComponent (nextState, cb) {
require.ensure([], (require) => {
const Type = require('./containers/TypeContainer').default
const reducer = require('./modules/type').default
injectReducer(store, { key: 'type', reducer })
cb(null, Type)
}, 'type')
}
})
其中TypeContainer
从“react工具箱”返回连接的(到redux存储)表`
TypeDetailsRoute
完全相同,但我指定了一个路径
export const TypeDetailsRoute = store => ({
path: ':id',
getComponent (nextState, cb) {
require.ensure([], (require) => {
const Type = require('./containers/TypeDetailsContainer').default
const reducer = require('./modules/type').default
injectReducer(store, { key: 'type', reducer })
cb(null, Type)
}, 'type')
}
})
这里
TypeDetailsContainer
返回的东西与Table
完全不同。我尝试了一个简单的h1
,我仍然有错误
我解决了!!!
在createRoutes
方法中,我必须通过其异步版本getChildRoutes
更改rootChilRoutes
。
因此,createRoutes
方法变成(TypeLine
重新组合TypeListRoad
和TypeDetailRoad
)
export const createRoutes = store => ({
getChildRoutes (nextState, cb) {
cb(null, [{
path: '/',
component: HomeLayout,
indexRoute: Home,
childRoutes: [
LoginRoute(store),
LogoutRoute(store),
SignupRoute(store)
]
}, {
path: '/dashboard',
component: requireAuthentication(DashboardLayout),
indexRoute: Dashboard,
childRoutes: [
DeviceRoute(store),
UserRoute(store),
TypeRoute(store)
]
}])
}
})
您可以使用Link
组件来完成此操作:
import { Link } from 'react-router'
...
<Link to={`/dashboard/types/${this.props.types[index].id}`}>Dashboard page</Link>
问题内容: 我在SQL Server中运行合并。在我的更新中,我只想更新值已更改的行。版本行在每次更新时都会递增。下面是一个示例: 现在,如果我只想更新行,从而增加版本,则仅在名称更改的情况下。 问题答案: 可以有。另外,无需更新。 如果Last_Name或First_Name可为空,则例如在比较trg.Last_Name <> src.Last_Name时,需要注意值。
问题内容: 内容: 我想使用jenkins定期仅处理SVN中已更改的文件,并将处理的输出提交回SVN。 原因: 我们正在将二进制文件提交到SVN中(我们正在使用Oracle Forms,并且正在提交fmb- Files)。我创建了一个脚本,将fmb导出到xml(使用Oracle的原始Fmb2XML工具),然后我将XML转换为我们也想提交的纯源。这使我们可以进行摸索,查看更改等。 问题: 目前,我只
问题内容: 可以说我的模块结构如下 现在要给客户端发消息,我需要构建所有模块,因为我正在加载上述所有模块的罐子,以最终发动客户端 并且所有jar都组装在模块部署中。 我的问题是,例如,如果我更改了服务中的任何内容,那么从运行构建时是否有办法可以识别出它只能构建,因此可以构建并将其部署到deploy文件夹中? 问题答案: 如果您正在使用SVN和* nix,请从根模块
我一直在尝试改装,我真的很简单。 然而,我有一个奥化的担忧。我正在为我的后端使用Parse,它有一个纯restapi。 当我想要更新一个对象时,我使用一个,并只在
我的WordPress博客中有几个类别。所有帖子都可以通过domain.tld/post-title获得。但现在我需要不同的网址为某些主题。 示例: blog>domain.tld/post-title 类别1>域.tld/category-1/post-title 类别2>域.tld/category-2/post-title 类别3>域.tld/post-title 我不想使用插件,而是通过c
问题内容: 我有一个,并且有一个侦听器连接到它。 现在,即使用户只是重新选择了先前选择的值,每次用户从下拉菜单中“选择”某项时,事件都会触发。 如果组合框的选定值与选定前的值不同,有什么方法可以仅触发事件? 我想我可以将组合框的值存储在不同的字段中,并在每次事件触发时将其进行比较,这似乎有点过头了。我有20个左右这样的组合框。我宁愿不要再有20个变量来存储值,这样事件就不会触发。 一定有更好的方法