Я пытаюсь получить данные из API с динамическим идентификатором. У меня двоеточие в моем пути маршрута. После отладки проблемы я заметил, что двоеточие добавляется перед идентификатором в ссылке, следовательно, запрос на выборку не выполнен. Пожалуйста, как я могу это решить. Я имею в виду, что вместо ap1.yoursite.com/111 я отправляю запрос на ap1.yoursite.com/:111, в результате чего объект fetch остается нулевым. Как я могу заставить двоеточие работать как динамический путь, но не мешать моему URL-адресу?
// Мой маршрут и // Получение фрагмента
const Main = props => (
<Switch>
<Route exact path = "/" component = {Goods} />
<Route path = "/items:id" component = {SingleGoods} />
</Switch>
);
const { id } = this.props.match.params;
console.info(id); //returns :number
fetch(`http://api.yoursite/${id}`)
.then(response => response.json())
.then(json => this.setState({ show: json }));
console.info(this.state.show); //always returns null, which is the initial state



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не уверен, правильно ли я вас понял, но думаю:
<Route path = "/items:id" component = {SingleGoods} />
должно быть
<Route path = "/items/:id" component = {SingleGoods} />
с еще одной косой чертой на пути.
Попробуйте <Route path = "/items/:id" component = {SingleGoods} />, обратите внимание на '/' перед параметром.
Вы намерены использовать какой-то путь вроде этого: /items/11, а затем сделать запрос выборки, используя этот id? Если да, то измените свой второй Route как:
<Route path = "/items/:id" component = {SingleGoods} />
Поэтому, когда вы посещаете /items/11, вы можете использовать этот идентификатор в своем компоненте SingleGoods.
Я очень тупой. Как я могу сделать такую простую ошибку и несколько часов отлаживаю свой код. Спасибо.