Как я могу перейти к пути с процентным знаком в реагирующем маршрутизаторе? - PullRequest
2 голосов
/ 17 марта 2020

Я пытаюсь перейти на страницу, которая может содержать знак процента (% ) в URL. например, "www.domain.com/edit/name%"

if (some condition is met then redirect) {
  let encodedString = encodeURIComponent(this.state.identifier);

  console.log(encodedString);

  return <Redirect push to={`/edit/${encodedString}`} />
}

и в компоненте, который мы перенаправили на:

if (params && params.identifier) {
  this.setState({
    identifier: decodeURI(params.identifier)
  });
}

Из console.log(); я ясно вижу, что encodedString при условии, что this.state.identifier is name% is name%25. Однако, когда условие для перенаправления выполнено, я немедленно получаю эту ошибку URIError: Pathname "/edit/name%" could not be decoded. This is likely caused by an invalid percent-encoding.

Есть ли способ для меня перенаправить на URI в случае, если /:identifier имеет знак процента?

...