如何在反应

时间:2017-05-26 21:01:01

标签: javascript reactjs react-router

我想知道是否有任何方法可以将参数(或变量)传递给不同的组件(例如,如果我单击一个按钮,那个按钮的onClick功能可以将我重定向到另一个组件,并且该变量应立即加载,并应显示不同的屏幕)我使用react-router 3.0.0,我希望有类似的功能,如react-native

Actions.somepage({ls: variablename});

当加载该页面时,应该有一个像this.props.ls这样的函数 获得这个价值。

有人可以告诉我该怎么做吗?(我使用this.context.router.push('/');进行路由)

2 个答案:

答案 0 :(得分:0)

如果你在没有状态管理器的情况下使用react-router(并对路由器v4做出反应),则很难共享状态,因为没有更高级别的组件可以呈现所有路由。您可以通过使用this.context.router.push({ pathname: '/', params: yourObject})

传递参数来解决这个问题

答案 1 :(得分:-1)

如果有问题的组件是可以访问变量/属性的组件的子组件,它可以将其传递给子组件,如此

class myParentComponent extends React.Component {
    render() {
        const foo = 'bar';
        <ChildComponent foo={foo} />
    }
}

ChildComponent现在可以访问this.props.foo

上的foo
class ChildComponent extends React.Component {
    // renders 'bar' in the div
    render() {
        <div>{this.props.foo}</div>
    }
}

如果不是这种情况,您需要一些东西来管理您的应用程序的状态。有多种实现,包括flux,以及我个人最喜欢的redux。或者你可以实现更传统的MVC架构,无论你习惯了什么。需要记住的重要一点是React本身只是一个视图层,而不是管理应用程序的方法。