相关疑难解决方法(0)

路径参数更改时,组件不会重新装入

我正在使用react-router处理反应应用程序.我有一个项目页面,其中包含如下网址:

myapplication.com/project/unique-project-id
Run Code Online (Sandbox Code Playgroud)

当项目组件加载时,我从componentDidMount事件触发该项目的数据请求.我现在遇到一个问题,如果我直接在两个项目之间切换,所以只有id改变这样......

myapplication.com/project/982378632
myapplication.com/project/782387223
myapplication.com/project/198731289
Run Code Online (Sandbox Code Playgroud)

componentDidMount不会再次触发,因此不会刷新数据.我应该使用另一个生命周期事件来触发我的数据请求,还是采用不同的策略来解决这个问题?

reactjs react-router

79
推荐指数
8
解决办法
5万
查看次数

是否可以仅在react-router转换时重新安装新的子组件

我在我的应用程序中使用react-router,我正在寻找一种方法来停止已经在DOM中的组件的重新安装.例如,如果我在URL dashboard,那么我将有一个关联的DashboardComponent挂载.当我转换到dashboard/settings那时我DashboardComponent以及SettingsComponent重新安装到DOM中.我想找到一种干净的方法来只挂载当前URL的子节点.这是真的吗?

路由器:

import { Component, createFactory, PropTypes } from 'react'
import { Route, RouteHandler, DefaultRoute, NotFoundRoute } from 'react-router'

import Home from '../components/Home'
import Dashboard from '../components/Dashboard'
import ViewPlayers from '../components/clubs/ViewPlayers'

let route = createFactory(Route),
    handler = createFactory(RouteHandler),
    root = createFactory(DefaultRoute),
    pageNotFound = createFactory(NotFoundRoute),
    Transitions = createFactory(require('react/lib/ReactCSSTransitionGroup'));

class App extends Component {

    constructor() {

        super();
    }

    render() {

        return (
            Transitions({transitionName: 'fade'},
                handler({key: this.context.router.getCurrentPath()})
            )
        )
    }
}
App.contextTypes = …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

react-router ×2

reactjs ×2