有没有办法在商店更换时改变路由器的反应?

时间:2016-09-18 17:22:28

标签: reactjs react-router

我通过创建待办事项列表来学习反应。列表按项目组织。所以我有一个带有projects数组和lists对象的对象。     {         项目:store.projects,         lists:store.lists     }

列表看起来像{projectName: ['list1',...]}

我的路线是我在projects数组

中的路线
const routes = ({
  var children = this.props.projects;
    const routes = {
        path: '/',
        component: Nav,
        indexRoute: { component: Layout },
        childRoutes: [ ]
    }
    for(let i in children){
      routes.childRoutes.push({path: children[i], component: Layout})
    }
    return routes
})
class Routing extends React.Component{
  render(){
    return(<Router className="row" routes={routes}   history={browserHistory} />)
  }
}

到目前为止一切顺利。现在,如果我发送一个将项目推送到projects的动作,我会收到以下错误消息:

  

警告:[react-router]你无法改变;它将被忽略

每次我向this.props.projects添加一些项目时,是否有办法重新创建路由器

1 个答案:

答案 0 :(得分:4)

您不希望为每种产品创建单独的路线。你想要的是一条路径中有变量的单一路线:

<Route path="projects/:name" component={Layout} />

通过name输入此路线,您可以访问this.props.params.name值。