У меня такая настройка маршрута:

<Route path={'/mycomponent'} exact component={MyComponent} />

И перейдите к нему с помощью компонента ActiveLink:

Import * как React из 'response' import {Link} из 'response-router-dom'

export interface OwnProps {
  to        : string,
  pathname  : string,
  children  : React.ReactChild
}

const ActiveLink = (props: OwnProps) => {

  const { pathname, to, children } = props

  if (pathname === to) {
    return <span className={ 'active-link active' }>{ children }</span>
  } else {
    return <Link className={ 'active-link in-active' } to={ to ? to : '/' }>{ children }</Link>
  }
}

export default ActiveLink

Я хотел бы найти способ передать данные в MyComponent (желательно в реквизитах), что-то, что эквивалентно '/ MyComponent? Aparam = hello & anotherparam = 32'

2
tweetypi 1 Янв 2018 в 13:59

2 ответа

Лучший ответ

Допустим, у вас есть маршрут, который вы объяснили ниже.

<Route path={'/mycomponent'} exact component={MyComponent} />

Теперь, если вы перенаправляете по маршруту, скажем

MyComponent?aparam=hello&anotherparam=32

Итак, в вашем классе MyComponent вы можете получить оба параметра, как показано ниже

let aparam = this.props.match.params.aparam;
let anotherparam = this.props.match.params.anotherparam;

Надеюсь, это поможет, если нет, то, пожалуйста, расскажите подробнее о своем вопросе. Спасибо :)

2
Binit Ghetiya 1 Янв 2018 в 11:06

Рекомендуется определять передаваемые параметры в маршруте, как это.

<Route path={'/mycomponent/:aparam/:anotherparam'} exact component={MyComponent} />

Затем вы можете перейти к MyComponent и передать параметры следующим образом:

<Link to="mycomponent/hello/32">{children}</Link>

Наконец, aparam и другой параметр будут доступны в My Component через значения prop

this.props.match.params.aparam;
this.props.match.params.anotherparam;
2
Sasha Kos 6 Май 2018 в 09:32