Перенаправление не кажется надежным

Я пытаюсь перенаправить пользователя на статью, на которую он нажал, когда нажимает на статью. Иногда кажется, что это работает, а иногда кажется, что ничего не происходит.

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

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

Joe Clay 17.04.2019 17:10

@JoeClay Никогда не знал, что Джо спасибо, я буду иметь это в виду! К сожалению, моя проблема заключается в том, что когда меня перенаправляют на /help, и я нажимаю другую статью, которая перенаправляет меня на /help, она сходит с ума...

Andrew 17.04.2019 17:14

Есть ли причина, по которой вы используете Redirect вместо Link?

Colin Ricardo 17.04.2019 17:33

@codecubed.io Нет причин, пока я не провел небольшое исследование, я думаю, что все время смотрел на это неправильно, Ссылка - это путь вперед. Спасибо!

Andrew 18.04.2019 09:07
Поведение ключевого слова "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
4
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Пытаться

import { Link } from 'react-router-dom'

return <Link to = {url} />;

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