"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como passar acessórios para componentes do manipulador no React Router?

Como passar acessórios para componentes do manipulador no React Router?

Publicado em 2024-11-08
Navegar:966

How to Pass Props to Handler Components in React Router?

Passando props para componentes do manipulador usando React Router

Em aplicativos React.js que utilizam o React Router, você pode encontrar cenários em que precisa passar props para componentes manipuladores específicos . Considere a seguinte estrutura do aplicativo:

var Dashboard = require('./Dashboard');
var Comments = require('./Comments');

var Index = React.createClass({
  render: function () {
    return (
        
Some header
); } }); var routes = ( ); ReactRouter.run(routes, function (Handler) { React.render(, document.body); });

Para passar props para o componente Comments, você normalmente usa sintaxe como . No entanto, esta abordagem é incompatível com o React Router, que espera que os componentes do manipulador sejam funções puras ou componentes de classe.

Uma solução é criar um componente wrapper que encapsula tanto o componente do manipulador quanto os adereços passados:

// CommentWrapper
var CommentWrapper = React.createClass({
  render: function () {
    return ;
  }
});

var routes = (
  
    
    
  
);

Como alternativa, você pode aproveitar os componentes da classe e o objeto this.props.route para acessar adereços passados ​​para a rota pai:

class Index extends React.Component { 

  constructor(props) {
    super(props);
  }
  render() {
    return (
      

Index - {this.props.route.foo}

); } } var routes = ( );

Ao definir a propriedade foo na rota /, você pode acessá-la posteriormente no componente Index usando this.props.route.

Declaração de lançamento Este artigo foi reimpresso em: 1729674935 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3