Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react中的条件函数_Javascript_Reactjs_Media Queries_Media - Fatal编程技术网

Javascript react中的条件函数

Javascript react中的条件函数,javascript,reactjs,media-queries,media,Javascript,Reactjs,Media Queries,Media,只是尝试在react中有条件地添加一个函数,我在JS中完全理解它,但react有点不同 我这里有我的媒体查询 let query = window.matchMedia("(max-width: 768px)") 所以我想做的是只允许onClick在媒体匹配的情况下运行 <div onClick={handleClick}> 欢呼声由于用户可以随时调整窗口大小,请在单击处理程序中运行检查: const handleClick = () => {

只是尝试在react中有条件地添加一个函数,我在JS中完全理解它,但react有点不同

我这里有我的媒体查询

let query = window.matchMedia("(max-width: 768px)")
所以我想做的是只允许onClick在媒体匹配的情况下运行

<div onClick={handleClick}>


欢呼声

由于用户可以随时调整窗口大小,请在单击处理程序中运行检查:

const handleClick = () => {
  if (!window.matchMedia("(max-width: 768px)").matches) {
    return;
  }
  // rest of the code
};

所以在
handleClick
中检查它?谢谢,我得到了这个:const handleClick=()=>{const query=window.matchMedia((最小宽度:768px)”),如果(!query)setisfliped(!isfliped);}在里面添加钩子,但当钩子达到大小时它不起作用,该函数甚至根本不运行。您说过,仅当处理程序匹配时才运行该处理程序。但是,
if(!query)
将仅在不匹配时运行。颠倒你的测试
如果(query){
是这样做的,但它不会在媒体查询上运行,这很奇怪,无论窗口大小如何,它都会运行。不确定发生了什么,它会在console.log上响应,因此语法没有问题。您需要检查结果的
.matches
属性以获得布尔值,否则它将始终是真实的(一个MediaQueryList结果对象)啊,我明白了!我想我可以发布应该如何编写的语法,谢谢