【问题标题】:ReactJS React Router paramsReactJS 反应路由器参数
【发布时间】:2016-06-02 12:23:28
【问题描述】:

我的 ReactJS 项目目前存在 React Router 问题。我有一个呈现视图的页面,视图内部是一个 .map 函数,它映射所有用户并将“first_name”放在<h4> 标记内。地图功能适用于所有用户。

我希望能够单击用户的 first_name 并导航到以 _id 作为参数的新路由。您导航到的新组件将收到 _id,我将在数据库中搜索它们的 _id。

预定路线:

| URL                 | Components |
|---------------------|------------|
| `/`                 | `Main`     |
| `/platform`         | `Platform` |
| `/platform/:userID` | `Editor`   |

目前我有 3 个文件,routes.js 包含所有 ReactRouter 配置。 index.js 保存来自数据库的渲染用户列表。而editor.js 文件将在 URL 中接收用户的 _id。

// Routes.js
import Main from './components/main';
import Home from './components/home';
import Platform from './components/platform';
import Editor from './components/editor';

<Route name="home" path="/" component={Main}>
    <IndexRoute component={Home} />
    <Route name="platform" path="platform/" component={Platform}>
        <Route name="user" path="/:userId" handler={Editor} />
    </Route>
</Route>


// Platform.js
{users.map(({_id, first_name, last_name}, index)=>
    <div>
        <Link to="user" params={{userId: _id}}>
            <h4 style={{fontFamily: 'Raleway', color: '#498EE0'}}>{first_name} {last_name} : {_id}</h4>
        </Link>
        <hr />
    </div>
)}

您应该能够点击Link 并将参数添加到 URL 中。

目前,当我尝试此操作时,它只是将/user 附加到我的网址上,因此它显示为localhost:8080/user

【问题讨论】:

    标签: javascript reactjs mongoose react-router


    【解决方案1】:

    你需要像这样改变to参数 -

    <Link to={`/user/${_id}`}>
      <h4 style={{fontFamily: 'Raleway', color: '#498EE0'}}>{first_name} {last_name} : {_id}</h4>
    </Link>
    

    【讨论】:

    • 感谢它现在可以工作,但是它在控制台中出现错误:警告:位置不匹配任何路线
    • 您还需要更改路线 -
    • 或者,如果您愿意,您可以保留它 - 并且可能会接受这个答案
    • 非常感谢,我还发现我嵌套的路线不正确,所以当改变它和你建议的改变时,它工作得很好:)
    猜你喜欢
    • 2016-08-20
    • 2016-04-18
    • 2017-06-14
    • 2020-10-02
    • 2018-06-11
    • 2021-07-13
    • 2018-04-28
    • 1970-01-01
    相关资源
    最近更新 更多