iframe снова отображает локальный хост вместо веб-сайта, который я передаю с реквизита

#javascript #reactjs

Вопрос:

У меня есть компонент, передающий URL-адрес веб-сайта компоненту макета в качестве реквизита:

 if (pageContent === 'mockup') {
        return <Mockup currentSite={currentSite} />;
} 
 

Компонент макета:

 const Mockup = ({ currentSite }) => {
    // const [currentMockup, setCurrentMockup] = useState('desktop');

    let mockupType;
    if (currentMockup === 'desktop') {
        mockupType = <Desktop site={currentSite} />;
    } else if (currentMockup === 'mobile') {
        mockupType = <Mobile site={currentSite} />;
    } else if (currentMockup === 'tablet') {
        mockupType = <Tablet site={currentSite} />;
    }

    return mockupType;
};

export default Mockup;
 

Когда я console.log(currentSite) , это та ценность, которую я ищу. Вот компонент iframe:

 import './Desktop.css';
import desktopMockup from '../../assets/desktop.png';

const Desktop = site => {

console.log(currentSite); // correct value is returned

    return (
        <div className="desktop">
            <iframe src={site} scrolling="no" title="desktop"></iframe>
            <img src={desktopMockup} alt="desktop mockup" />
        </div>
    );
};

export default Desktop;
 

Поэтому, когда currentSite реквизит попадает в компонент рабочего стола, это правильное значение. Если я жестко закодирую веб-сайт, он работает, но когда я передаю его в качестве аргумента, он повторно отображает localhost.

Есть какие-нибудь идеи?

Комментарии:

1. Вы исключили кэширование?

2. Не совсем понимаю, что ты имеешь в виду

3. Я имел в виду, кэшировалось ли значение localhost браузером, но, похоже, это было не так.

Ответ №1:

Наверное, я забыл деструктировать site , когда получал его в качестве опоры на своем настольном компоненте