Я играл с реагирующим , чтобы понять, как сделать сайты мобильными. По сути, я хочу передать значение из функции, которая проверяет размер экрана просмотра, как у мобильного телефона. Практически украденный из документации о реагировании, у меня есть функция в файле с именем Mobile. js следующим образом:
const Mobile = () => {
const mobile = useMediaQuery({ query: '(max-width: 1000px)' })
return (
<div>
{mobile && <p>You are sized like a mobile phone</p>}
</div>
);
}
Однако, что я хочу сделать, это передать логическое значение " mobile "в другие классы в других js файлах, где я могу затем использовать различные CSS classNames в зависимости от значения этого логического значения.
У меня есть 3 конкретных c вопроса.
Как бы я вернул логический мобильный телефон из функции Mobile для использования?
Как мне получить доступ к этому возвращенному логическому значению?
Как бы я изменил имя класса для div в зависимости от значения этого логического значения?
Довольно плохо знаком с веб-разработкой (особенно React) и эти вопросы кажутся очень простыми и легко решаемыми, но по какой-то причине я просто не могу понять это своими собственными онлайн-исследованиями. Очень хотелось бы прямой помощи, а также некоторые ресурсы, где я мог бы узнать больше. Огромное спасибо!
Для меня в идеальном мире правильный код выглядел бы так в моей голове. Не уверен, насколько далеко я нахожусь, но я надеялся, что, возможно, это послужит некоторым руководством относительно того, как я думаю.
В файле функций
// FILE Mobile.js
const Mobile = () => {
const mobile = useMediaQuery({ query: '(max-width: 1000px)' })
return (
{ mobile } // how to return a value?
);
}
export default Mobile;
В другом файле ,
// FILE OtherClass.js
import Mobile from './Mobile';
class OtherClass extends Component {
constructor(props) {
super(props);
this.state = { mobile: <Mobile /> } // how to access the returned value?
}
render() {
return (
<div>
{this.state.mobile && <div className="text-mobile">} // how to change the className depending on value?
{!this.state.mobile && <div className="text-desktop">}
blah blah blah blah blah
</div>
</div>
);
}
}