当前位置: 首页 > 知识库问答 >
问题:

react-router-pass propps到处理程序组件

东门仲卿
2023-03-14
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);
});

(通常我会像 )

使用React路由器最简单和正确的方法是什么?

共有1个答案

秦博延
2023-03-14

从新版本开始,可以直接通过route组件传递道具,而无需使用包装器。例如,通过使用render道具。

组件:

class Greeting extends React.Component {
  render() {
    const {text, match: {params}} = this.props;

    const {name} = params;

    return (
      <React.Fragment>
        <h1>Greeting page</h1>
        <p>
          {text} {name}
        </p>
      </React.Fragment>
    );
  }
}

用法:

<Route path="/greeting/:name" render={(props) => <Greeting text="Hello, " {...props} />} />
var Dashboard = require('./Dashboard');
var Comments = require('./Comments');

var CommentsWrapper = React.createClass({
  render: function () {
    return (
      <Comments myprop="myvalue"/>
    );
  }
});

var Index = React.createClass({
  render: function () {
    return (
      <div>
        <header>Some header</header>
        <RouteHandler/>
      </div>
    );
  }
});

var routes = (
  <Route path="/" handler={Index}>
    <Route path="comments" handler={CommentsWrapper}/>
    <DefaultRoute handler={Dashboard}/>
  </Route>
);

ReactRouter.run(routes, function (Handler) {
  React.render(<Handler/>, document.body);
});
 类似资料:
  • 问题内容: 我使用React Router的React.js应用程序具有以下结构: 我想将一些属性传递给组件。 (通常我会这样做) 用React Router做到这一点最简单,正确的方法是什么? 问题答案: 更新 自新版本发布以来,无需使用包装器就可以直接通过组件传递道具。例如,通过使用prop。 零件: 用法: 旧版本 我的首选方式是包装组件并将包装器作为路由处理程序传递。 这是您应用了更改的示

  • 我试图路由到一个类组件,但它给我一个错误。当我将组件更改为功能性组件时,路由就开始工作了。如何路由到类组件? 我刚开始使用React-Router。我首先有一个要路由到的功能组件。但是一旦我意识到组件需要是一个类,我就把它更改为一个类,现在路由显示 “无法获取/探索/单词”。

  • 问题内容: 我有一个LoginForm组件。我要检查之前提交,这两个和设置。我尝试使用此代码(省略了很多内容): 但是,我在事件处理程序中得到一个,说是空的。 我该怎么办? 问题答案: 你需要设置的方法,因为现在是,对于此操作,您可以使用 或者您可以使用箭头功能

  • 问题内容: 由于某些原因,此值在反应事件处理程序中丢失。阅读我认为有反应的文档在这里做了一些工作,以确保将其设置为正确的值 以下内容不符合我的预期 但这确实是: React和ES6对我来说是新手,但这似乎不是正确的行为? 问题答案: 如果使用新语法,这对于JavaScript和React是正确的行为。 自动绑定功能不适用于 v0.13.0中的ES6类。 因此,您需要使用: 或其他技巧之一:

  • 本文向大家介绍利用React-router+Webpack快速构建react程序,包括了利用React-router+Webpack快速构建react程序的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍的是使用React-router和Webpack如何快速构建一个react程序,下面话不多说,感兴趣的可以一起学习学习。 初始化项目 我们先创建个空文件夹,然后初始化 package.json