【发布时间】:2015-03-08 00:28:00
【问题描述】:
我的 React.js 应用程序使用 React Router 具有以下结构:
var Dashboard = require('./Dashboard');
var Comments = require('./Comments');
var Index = React.createClass({
render: function () {
return (
<div>
<header>Some header</header>
<RouteHandler />
</div>
);
}
});
var routes = (
<Route path="/" handler={Index}>
<Route path="comments" handler={Comments}/>
<DefaultRoute handler={Dashboard}/>
</Route>
);
ReactRouter.run(routes, function (Handler) {
React.render(<Handler/>, document.body);
});
我想将一些属性传递给Comments 组件。
(通常我会像 <Comments myprop="value" /> 那样做)
使用 React Router 最简单和正确的方法是什么?
【问题讨论】:
-
这里的问题,在类似的情况下,特别是用一些语言编写的框架或库,一定缺乏组合方式(MoC)。 Primitives 在 React 中似乎还可以,它们非常好,在 React 元素和组件中定义带有基元的组件,MoC 在 React 中似乎也可以。但是组合方式是不完整的。一个人必须能够将props传递给一个组件,同时将一个组件组合到另一个组件,无论是将一个组件作为它的子组件放在另一个组件中还是将一个组件作为props传递给另一个。
-
使用
<ComponentA x={<ComponentB y={<ComponentC z={} />} />} />或<ComponentA x={ComponentB(ComponentC()) } />之类的语法 否则,这种抽象组合问题将再次出现,并且需要一些非最佳和间接的解决方案,称为变通方法,如包装等等,等等。抽象必须是作为原语的一等公民,无论一等感知是什么意思。
标签: javascript properties reactjs react-router