Я пытаюсь перейти на страницу, которая может содержать знак процента (% ) в 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
имеет знак процента?