Я пытаюсь перенаправить пользователя на статью, на которую он нажал, когда нажимает на статью. Иногда кажется, что это работает, а иногда кажется, что ничего не происходит.
const searchResult = props => {
const [url, setUrl] = useState('');
const listItemClicked = url => {
setUrl(url);
};
if (url !== '') {
console.info(url);
return <Redirect to = {url} />;
}
return (
<li key = {props.resultName} className = "result-list" onClick = {() => listItemClicked(props.url)}>
<div className = "result">
<p>{props.resultName[0].toUpperCase() + props.resultName.slice(1)}</p>
</div>
</li>
);
};
export default searchResult;
console.info(url); показывает URL-адрес каждый раз, просто кое-что, о чем следует помнить, поэтому я сказал, что перенаправление не кажется очень надежным / также необходимо использовать случай, если я уже нахожусь в /help, и я перенаправляю на /help, вызовет ли это какие-либо проблемы , Я так не думаю, но просто добавляю это туда.
Любые рекомендации о том, как я могу решить эту проблему по-другому или что я могу сделать, чтобы сделать это более надежным? Как бы вы это сделали, если бы продвигали это в производство? Заранее спасибо!
Обновлять — Кажется, я получаю сообщение об ошибке, когда я нахожусь в /help и перенаправляюсь на /help
@JoeClay Никогда не знал, что Джо спасибо, я буду иметь это в виду! К сожалению, моя проблема заключается в том, что когда меня перенаправляют на /help, и я нажимаю другую статью, которая перенаправляет меня на /help, она сходит с ума...
Есть ли причина, по которой вы используете Redirect вместо Link?
@codecubed.io Нет причин, пока я не провел небольшое исследование, я думаю, что все время смотрел на это неправильно, Ссылка - это путь вперед. Спасибо!



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


Пытаться
import { Link } from 'react-router-dom'
return <Link to = {url} />;
Я не уверен, является ли это основной причиной вашей проблемы, но вы никогда не должны ставить
keyна верхнем уровне компонента — его нужно использовать в контексте цикла, в котором рендерится компонент. Если вы где-то делаетеmyArray.map(item => <SearchResult />), это, куда должен идти ключ:myArray.map(item => <SearchResult key = {item.resultName} />)