«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как передать реквизиты компонентам-обработчикам в React Router?

Как передать реквизиты компонентам-обработчикам в React Router?

Опубликовано 8 ноября 2024 г.
Просматривать:423

How to Pass Props to Handler Components in React Router?

Передача реквизитов компонентам-обработчикам с помощью React Router

В приложениях React.js, использующих React Router, вы можете столкнуться со сценариями, в которых вам необходимо передать реквизиты конкретным компонентам-обработчикам . Рассмотрим следующую структуру приложения:

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); });

Чтобы передать реквизиты компоненту комментариев, вы обычно используете синтаксис типа . Однако этот подход несовместим с React Router, который ожидает, что компоненты-обработчики будут чистыми функциями или компонентами класса.

Одним из решений является создание компонента-оболочки, который инкапсулирует как компонент-обработчик, так и переданные реквизиты:

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

var routes = (
  
);

В качестве альтернативы вы можете использовать компоненты класса и объект this.props.route для доступа к реквизитам, передаваемым в родительский маршрут:

class Index extends React.Component { 

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

Index - {this.props.route.foo}

); } } var routes = ( );

Установив свойство foo на маршруте /, вы сможете получить доступ к этому свойству позже в компоненте Index, используя this.props.route.

Заявление о выпуске Эта статья перепечатана по адресу: 1729674935. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3