使用动态URL参数调用React组件

时间:2016-04-18 15:22:06

标签: reactjs

现在,我正在使用静态URL渲染React组件。

我想将其传递给动态网址。

例如,不要这样称呼它:

https://www.example.com

我想这样称呼:

https://www.example.com/?name=John

我希望这能更新其this.props.namethis.state.name个组件。

我能这样做吗?

我应该为此目的使用什么? react-router

或者这只能从后端完成吗?

1 个答案:

答案 0 :(得分:2)

您不需要react-router。以下将解析您的网址:

    let url_parameter = {};
    const currLocation = window.location.href,
        parArr = currLocation.split("?")[1].split("&");
    for (let i = 0; i < parArr.length; i++) {
        const parr = parArr[i].split("=");
        url_parameter[parr[0]] = parr[1];
    }

但是,如果您使用react-router,则可能需要使用该资源。链接看起来像这样:

http://www.example.com/john

在这种情况下,react允许获取this.props.params中的资源: 这里如何指定路线:

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

此处如何访问组件“名称”中的名称:

....
render() {
   const {name} = this.props.params;
   ...
}

我希望这会有所帮助。