这是我的routes.js,我在将userProfiles
收到的数据传递给该用户的userProfileDetail
时遇到问题。我不想在userProfileDetail
中进行其他API调用,因为userProfiles
已经有来电了
const routes = {
component: Base,
childRoutes: [
{
path: '/profiles',
getComponent: (location, callback) => {
callback(null, userProfiles);
}
},
{
path: '/profile/:profile_id',
getComponent: (location, callback) => {
callback(null, userProfileDetail);
}
}
]
};
我如何通过
进行导航<Link to={
中的 } />
/个/ / {{user._id} userProfiles
,但如何从userProfiles
传递到userProfileDetail
?
答案 0 :(得分:1)
如果某人刷新userProfileDetail
页面,该怎么办?如何获得任何数据?您无法假设用户已拥有哪些数据。你必须确保任何页面都可以自己构建。
在整个应用中分享数据的一个好方法是实现像redux
这样的状态管理系统,这样您就可以从应用中的任何组件调用您拥有的任何数据,从而使传递的数据变得多余。
答案 1 :(得分:0)
您可以使用react-router的state
。
在此链接中将对象设置为to
道具。
<Link to={{
pathname: `/profile/${user._id}`,
state: { userProfiles: userProfiles }
}}/>
现在您可以从location
。
location.state.userProfiles
另请注意,如果用户通过在浏览器中直接键入URL或重新加载页面来导航页面,state
将没有任何值。因此理想的解决方案是调用API,如果user._id
没有值,则使用state
加载这些数据。