我正在使用 react-router 进行反应。
我正在尝试在 react-router 的“链接”中传递属性
var React = require('react');
var Router = require('react-router');
var CreateIdeaView = require('./components/createIdeaView.jsx');
var Link = Router.Link;
var Route = Router.Route;
var DefaultRoute = Router.DefaultRoute;
var RouteHandler = Router.RouteHandler;
var App = React.createClass({
render : function(){
return(
<div>
<Link to="ideas" params={{ testvalue: "hello" }}>Create Idea</Link>
<RouteHandler/>
</div>
);
}
});
var routes = (
<Route name="app" path="/" handler={App}>
<Route name="ideas" handler={CreateIdeaView} />
<DefaultRoute handler={Home} />
</Route>
);
Router.run(routes, function(Handler) {
React.render(<Handler />, document.getElementById('main'))
});
“链接”呈现页面但不将属性传递给新视图。
下面是查看代码
var React = require('react');
var Router = require('react-router');
var CreateIdeaView = React.createClass({
render : function(){
console.log('props form link',this.props,this)//props not recived
return(
<div>
<h1>Create Post: </h1>
<input type='text' ref='newIdeaTitle' placeholder='title'></input>
<input type='text' ref='newIdeaBody' placeholder='body'></input>
</div>
);
}
});
module.exports = CreateIdeaView;
如何使用“链接”传递数据?
原文由 vishal atmakuri 发布,翻译遵循 CC BY-SA 4.0 许可协议
此行缺少
path
:应该:
鉴于以下
Link
(过时的 v1) :从 v4/v5 开始更新:
在
withRouter(CreateIdeaView)
组件render()
中,withRouter
高阶组件的过时用法:在使用
useParams
和useLocation
钩子的功能组件中:从您在文档上发布的链接到页面底部:
使用一些存根查询示例更新了代码示例:
#更新:
请参阅: https ://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v2.0.0.md#link-to-onenter-and-isactive-use-location-descriptors
#v3 到 v4 的更新:
https://github.com/ReactTraining/react-router/blob/432dc9cf2344c772ab9f6379998aa7d74c1d43de/packages/react-router/docs/guides/migrating.md
https://github.com/ReactTraining/react-router/pull/3803
https://github.com/ReactTraining/react-router/pull/3669
https://github.com/ReactTraining/react-router/pull/3430
https://github.com/ReactTraining/react-router/pull/3443
https://github.com/ReactTraining/react-router/pull/3803
https://github.com/ReactTraining/react-router/pull/3636
https://github.com/ReactTraining/react-router/pull/3397
https://github.com/ReactTraining/react-router/pull/3288
界面基本还是v2一样,最好看一下react-router的CHANGES.md,因为那是更新的地方。
供后代使用的“遗留迁移文件”
https://github.com/ReactTraining/react-router/blob/dc7facf205f9ee43cebea9fab710dce036d04f04/packages/react-router/docs/guides/migrating.md
https://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v1.0.0.md
https://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v2.0.0.md
https://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v2.2.0.md
https://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v2.4.0.md
https://github.com/ReactTraining/react-router/blob/0c6d51cd6639aff8a84b11d89e27887b3558ed8a/upgrade-guides/v2.5.0.md