#reactjs #rest #react-router
#reactjs #rest #реагировать-маршрутизатор
Вопрос:
Я работал над интерфейсом с использованием ReactJS. Я пытался отправить параметр, полученный по ссылке, в функцию с помощью : <Route path="/dta/:pid" component={this.DtaDisplay}/>
. Я не могу использовать параметр в методе DtaDisplay(). Кто-нибудь может мне помочь?
render() {
return (
<BrowserRouter>
<div>
{this.NavigationDta()}
<p className="App-intro">
<Route path="/dta/:pid" component={this.DtaDisplay}/>
<Route path="/rrf" component={this.ReferenceRangeFactorDisplay}/>
</p>
<p className="App-intro">
<Route path="/nomen" component={this.NomenDisplay}/>
</p>
</div>
</BrowserRouter>
)
}
DtaDisplay = () => {
return <h1>{pid}</h1>
}
Ответ №1:
Вы должны использовать параметры, подобные этому:
<Route path="/dta/:pid" component={this.DtaDisplay}/>
DtaDisplay = ({match}) => {
return <h1>{match.params.pid}</h1>
}
Обратитесь к этим документам от React Router
Комментарии:
1. Добро пожаловать! Если вы просмотрите документацию по React Router, вы найдете больше полезных рецептов. 😉
2. Как я могу сохранить значение в переменной, скажем, const value={match.params.pid}. это не работает. как я могу это решить?@ Юлио Алеман Хименес
3. Просто без использования скобок, например:
const value=match.params.pid
. Скобки в вашем случае предназначены только для отображения или использования значенияpid
в качестве отображаемого значения.
Ответ №2:
Компонент, который отображается через Route
, получает реквизиты маршрутизатора. Среди них вы можете получить доступ к параметрам запроса, используя match.params.pid
DtaDisplay = (props) => {
const { match: { params: { pid }}} = props;
return <h1>{pid}</h1>
}
Используя вышесказанное, вы можете использовать pid
в других необходимых местах без необходимости писать props.match.params.pid
повторно.
Комментарии:
1. Это решение интересно и более удобно, когда требуется использовать
props
значения более нескольких раз. 1.