Как удалить двоеточие (:) из URL-адреса API в проекте React

Я пытаюсь получить данные из 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
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
959
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Не уверен, правильно ли я вас понял, но думаю:

<Route path = "/items:id" component = {SingleGoods} />  

должно быть

<Route path = "/items/:id" component = {SingleGoods} /> 

с еще одной косой чертой на пути.

Я очень тупой. Как я могу сделать такую ​​простую ошибку и несколько часов отлаживаю свой код. Спасибо.

CYNTHIA Blessing 30.12.2018 23:42

Попробуйте <Route path = "/items/:id" component = {SingleGoods} />, обратите внимание на '/' перед параметром.

параметры URL-адреса реактивного маршрутизатора

Вы намерены использовать какой-то путь вроде этого: /items/11, а затем сделать запрос выборки, используя этот id? Если да, то измените свой второй Route как:

<Route path = "/items/:id" component = {SingleGoods} />

Поэтому, когда вы посещаете /items/11, вы можете использовать этот идентификатор в своем компоненте SingleGoods.

См .: Параметры URL-адреса маршрутизатора React.

Другие вопросы по теме