#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
, когда получал его в качестве опоры на своем настольном компоненте